编码表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编码表相关的知识,希望对你有一定的参考价值。

常见的编码表:

ASCII 美国标准信息交换码,用一个字节的7位表示

ISO-8859-1  拉丁码表,欧洲码表,用一个字节的全部8位表示

GB2312:中国的中文码表

GBK:GB2312的升级,融合了更多的中文文字符号

Unicode:国际标准码,融合了多种文字,所有文字都是使用两个字节来表示,java就是使用Unicode编码表

UTF-8:最多用三个字节来表示一个字符。如果能用一个字节来装,就使用一个字节,一个装不下,就用两个字节,最多三个字节

 

 

string s="你好";

byte[] buf=s.getBytes("GBK");// -60 -29 -70 -61  你好的GBK编码

byte[] buf=s.getBytes("UTF-8");// -28 -67 -96 -27   -91  -67  你好的UTF-8编码

 

 

//编码;
byte[] buf = str.getBytes("UTF-8");

//解码:
String s1 = new String(buf,"UTF-8");

 

 

乱码问题,类似tomcat里。

String str = "谢谢";

byte[] buf = str.getBytes("gbk");//使用GBK进行编码

String s1 = new String(buf,"UTF-8");//解码的时候使用了utf-8,出现乱码

解决办法是获取utf-8对应的字节值,然后再使用GBK解码就可以了,Tomcat就是这样做的。

byte[] buf2 = s1.getBytes("UTF-8");//获取源字节.
 
String s2 = new String(buf2,"GBK");//s2就是  谢谢

 

在java中"abcd"与"ab你好"的长度是一样的,都是四个字符,但是对应的字节数是不一样的。一个汉字两个字节。

 

以上是关于编码表的主要内容,如果未能解决你的问题,请参考以下文章

Unicode汉字编码表

第4章 编码表

UniCode编码表

Unicode字符编码表

如何确定文本文件的编码表

补充:字符编码ASCII ISO8859-1GB2312GBKUnicodeUTF-8