java 中文字符 解编码
来源:互联网 发布:2万钱网络大电影 编辑:程序博客网 时间:2024/05/22 08:51
一个实例:
// 该java类默认为gb2312编码String str="你好abc";System.out.println("原串:"+str);byte[] bytes1=str.getBytes();//byte为8bit,-128到127System.out.print("gb2312: ");for(byte b:bytes1){System.out.print(Integer.toHexString(b&0xff)+" ");}System.out.println();System.out.print("gbk: ");byte[] bytes2=str.getBytes("gbk");for(byte b:bytes2){System.out.print(Integer.toHexString(b&0xff)+" ");}System.out.println();System.out.print("utf-8: ");byte[] bytes3=str.getBytes("utf-8");for(byte b:bytes3){System.out.print(Integer.toHexString(b&0xff)+" ");}System.out.println();System.out.print("utf-16be:");byte[] bytes4=str.getBytes("utf-16be");for(byte b:bytes4){System.out.print(Integer.toHexString(b&0xff)+" ");}System.out.println();System.out.print("ISO-8859-1:");byte[] bytes5=str.getBytes("ISO-8859-1");for(byte b:bytes5){System.out.print(Integer.toHexString(b&0xff)+" ");}System.out.println();String str2=new String(bytes2);System.out.println(str2);String str3=new String(bytes3);System.out.println(str3);String str4=new String(bytes4);System.out.println(str4);String str5=new String(bytes4,"utf-16be");System.out.println(str5);String str6=new String(bytes5,"ISO-8859-1");System.out.println(str6);
打印结果:
分析:由上面例子可以知道中文“你好”根据各种字符编码标准得到的字节是不同的:
1)gb2312和gbk相同,两个字节表示一个中文,实际上gb2312只支持6763个汉字,不是所有汉字都可以使用gb2312编码,而gbk是兼容gb2312的,而且可以表示更多的中文字符;
2)utf-8用3个字节表示一个中文,一个字节表示一个字母;
3)utf-16be(即Unicode编码)则是中文和英文字符都是2个字节;
4)ISO-8859-1为单字节编码,范围0x00-0xff,从输出结果可以知道,因为“你”,“好”是中文,在码表中没有中文字符,字节都翻译为了3f,尽管在后面使用了iso-8859-1,翻译编码“3f 3f 61 62 63 ”只得到“??abc”,得不到原来的结果“你好”。ISO-8859-1为很多软件采用的默认编码,故而容易导致中文乱码
参考:点击打开链接
0 0
- java 中文字符 解编码
- JAVA中文字符编码
- Java 中文字符编码
- java中文字符编码3
- [Java] JAVA中文字符编码问题详解
- Java字符丢失与中文编码
- JAVA中文字符编码问题详解
- JAVA中文字符编码问题详解
- JAVA中文字符编码问题详解
- JAVA中文字符编码问题详解
- JAVA中文字符编码问题详解
- JAVA中文字符编码问题详解
- (best!)JAVA中文字符编码问题详解
- JAVA中文字符编码问题详解
- JAVA中文字符编码问题详解
- JAVA中文字符编码问题详解
- JAVA中文字符编码问题详解
- JAVA中文字符编码问题(转)
- 微信公众号开发_FormatXmlContent中的代码(四)
- IntelliJ Idea 常用快捷键列表
- 1109-Too Naive
- 帮您快速入门 TI 的 Codec Engine
- java Socket 多个客户端连接同一个服务端
- java 中文字符 解编码
- ViewPager详解(四)填充Fragment和懒加载
- 多线程学习之多线程编程
- 笔记:C++学习之旅---顺序容器
- 常用查找算法
- 微信公众号开发_HttpUploadFile的代码(五)
- Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)
- [JS]JS内存管理
- HDU 5907-Find Q (全是q的子串)