java IO 字符编码相关
2015-09-01 22:33
666 查看
gbk编码: 中文占用两个字节,英文占用一个字节
utf-8编码:中文占用三个字节,英文占用一个字节
java是双字节编码,是utf-16be编码
utf-16be编码:中文占用两个字节,英文占用两个字节
当你的字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码
输出的结果:
bd ad c4 cf 41 42 bd ad c4 cf 41 42
gbk的编码
utf-8 的编码:
e6 b1 9f e5 8d 97 41 42
java 的编码是utf-16 中文占用2个直接,英文也是占用两个字节
fe ff 6c 5f 53 57 0 41 0 42
当你的字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码
?l_SW
utf-8编码:中文占用三个字节,英文占用一个字节
java是双字节编码,是utf-16be编码
utf-16be编码:中文占用两个字节,英文占用两个字节
当你的字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码
package jn.io; import java.io.UnsupportedEncodingException; public class EncodeDemo { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub String s = "江南AB"; byte[] bytes1 = s.getBytes(); for(byte b:bytes1){ System.out.print(Integer.toHexString(b & 0xff)+" "); } System.out.println(); System.out.println("gbk的编码"); byte[] bytes2 = s.getBytes("gbk"); for(byte b:bytes2){ System.err.print(Integer.toHexString(b & 0xff)+" "); } System.out.println("\n utf-8 的编码:"); byte[] bytes3 =s.getBytes("utf-8"); for(byte b:bytes3){ System.out.print(Integer.toHexString(b &0xff)+" "); } System.out.println("\njava 的编码是utf-16 中文占用2个直接,英文也是占用两个字节"); byte[] bytes4 =s.getBytes("utf-16"); for(byte b:bytes4){ System.out.print(Integer.toHexString(b &0xff)+" "); } System.out.println("\n当你的字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码"); String string1 = new String(bytes4); System.out.println(string1); String string2 = new String(bytes4,"utf-16"); System.out.println(string2); /** * 文本文件 就是字节序列 * 可以放 任意编码的字节序列 * * 中文系统下ANSI编码代表GBK 电脑上新建文本格式文件,只认识ansi编码;复制的来的文件什么编码都可以,但它的编码也是和原编码一致。 */ } }
输出的结果:
bd ad c4 cf 41 42 bd ad c4 cf 41 42
gbk的编码
utf-8 的编码:
e6 b1 9f e5 8d 97 41 42
java 的编码是utf-16 中文占用2个直接,英文也是占用两个字节
fe ff 6c 5f 53 57 0 41 0 42
当你的字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码
?l_SW
相关文章推荐
- 自学Java系列 笔记4 Java常用类 1
- JavaWeb基础学习第六天
- 自学Java系列 笔记3 IO 4
- 自学Java系列 笔记3 IO 3
- 自学Java系列 笔记3 IO 2
- 自学Java系列 笔记3 IO 1
- 自学Java系列 笔记3 枚举、注释
- [转]spring的ParameterMethodNameResolver
- [RealTime]Java即时编译技术的了解
- 自学Java系列 笔记3 泛型1
- 自学Java系列 笔记2 Java集合3
- 自学Java系列 笔记2 Java集合2
- 自学Java系列 笔记2 Java集合1
- 自学Java系列 笔记2 异常处理1
- 自学Java系列 笔记2 高级类特性2
- java学习笔记(十二) -- Swing先行(1)
- 自学Java系列 笔记2 高级类特性1
- 自学Java系列 笔记2 Java类设计3
- 自学Java系列 笔记2 Java类设计2
- 自学Java系列 笔记2 Java类设计1