做网站 以图搜货,网站建设佰金手指科杰十三,怎么查询网站是否收录,云南省建设工程造价信息网字符集
强调#xff1a;UTF-8是编码规则#xff0c;不是字符集
过程#xff1a;
字符 --查表获得对应数字#xff0c;--编码
解码---查表----获取字符
ASCII码 #xff1a;一个字节 8bit GBK字符集#xff08;windows系统默认使用的GBK,系统显示ANSI#xff09;
存…字符集
强调UTF-8是编码规则不是字符集
过程
字符 --查表获得对应数字--编码
解码---查表----获取字符
ASCII码 一个字节 8bit GBK字符集windows系统默认使用的GBK,系统显示ANSI
存储规则 GBK英文编码规则 英文用一个字节存储完全兼容ASCII码不足8位前面补0 GBK汉字编码规则 汉字两个字节存储高位字节二进制用1开头转成十进制之后是一个负数 Unicode字符集 UTF-16编码规则:用2~4个字节保存 UTF-32编码规则用4个字节保存 UTF-8编码规则用1~4个字节保存 英文用1个字节中文用3个字节表示 乱码
原因 读取数据时没有读完整个汉字编码和解码的规则不统一
避免方法 不要用字节流读取文件编码时使用同一个编码规则同一个码表
java中编码和解码的实现
public byte[] getByte(String charsetName) 使用指定的方式编码
public String(Byte[] bytes,String charSetName) 使用指定的方式解码
(不带参就使用默认编码解码) Testpublic void encode() throws UnsupportedEncodingException {String str 无敌是多么寂寞;byte[] bytes str.getBytes(UTF-8);String str1 new String(bytes,0,bytes.length,GBK);System.out.println(str1);}