wordpress widget 模板,盘锦网站建设优化,o2o网站建设咨询,做h5网站1、我们常用的编码表#xff1a; ASCLL:美国标准信息交换码 ---用一个字节的7位可以表示ISO8859-1:拉丁码表、欧洲码表
---用一个字节的8位来表示GB2312#xff1a;中国的中文编码表
GBK#xff1a;中国的中文编码表的升级。 ---一个汉字用两个字节表示#…1、我们常用的编码表 ASCLL:美国标准信息交换码 ---用一个字节的7位可以表示ISO8859-1:拉丁码表、欧洲码表
---用一个字节的8位来表示GB2312中国的中文编码表
GBK中国的中文编码表的升级。 ---一个汉字用两个字节表示每个字节的高位是1所以汉字的byte形式是负数。Unicode国际标准码融合了多种文字。
UTF-8:最多用三个字节表示一个字符
2、编码表的编码和解码步骤 2.1先来了解下编码和解码的概念 编码字符串变成字节数组 解码字节数组变成字符串 即 编码String–byte数组str.getBytes(); 解码byte–String 2.2 GBK编码的转换流程
String str 上海;byte[] b str.getBytes();System.out.println(Arrays.toString(b));String s new String(b,gbk);System.out.println(s);系统默认的编码是gbk编码当调用getBytes()方法之后“上海”二字转换成长度为4的字节数组这里是编码的过程。
当new String(b,“gbk”)时用的是gbk的解码方式。所以能够解析出相应的汉字。若使用utf-8那么就会出现中文乱码。
因此解决中文来乱码的关键点 在于编码表的对应。
演示编码不一致产生的中文乱码问题
String str 上海;byte[] b str.getBytes(utf-8);System.out.println(汉字strutf-8编码形式Arrays.toString(b));String s new String(b,gbk);System.out.println(与之对应的gbk解码形式s);由上面可以看出来一个utf-8编码方式的汉字占用3个字节而gbk编码方式占用2个字节。 3、产生ISO8859-1的中文乱码的解决方法 产生问题
String str 上海;byte[] b str.getBytes();System.out.println(汉字strgbk编码形式Arrays.toString(b));String s new String(b,iso8859-1);System.out.println(与之对应的iso8859-1解码形式s);一个ISO8859-1编码占用一个字节。
解决方法将乱码按照iso8859-1的编码格式重新编码产生的编码还是那些字节数组[-55,-49,-70,-93],然后将这些字节数组按照GBK编码进行解码。
代码如下
String str 上海;byte[] b str.getBytes();System.out.println(汉字strgbk编码形式Arrays.toString(b));String s new String(b,iso8859-1);System.out.println(与之对应的iso8859-1解码形式s);byte[] b1 s.getBytes(iso8859-1);System.out.println(s与之对应的iso8859-1编码形式Arrays.toString(b1));String s1 new String(b1,gbk);System.out.println(s1);4、客户端与Tomcat之间产生的中文乱码 所以需要将ISO8859-1产生的中文乱码进行编码再解码。
即new Stirng(b.getBytes(“iso8859-1”,“gbk”));
若采用的是UTF-8编码
new String(b.getBytes(“iso8859-1”),“utf-8”);
以上是今天学到的一些内容之前在做网站时一直会出现这些中文乱码的问题尽管一些问题解决了但是不了解这些问题的原因今天在这里总结一下这些内容。自己能够进一步的了解也希望对大家起到作用。