您的位置:首页 > 编程语言 > Java开发

JAVA 文件的编码

2015-11-13 14:23 302 查看
1,.txt文件有多种编码格式,"GBK", "UTF-8", "Unicode", "UTF-16BE"等,文件在不同的编译器中会经常出现乱码问题,下面通过JAVA解析一个字符串来介绍一些JAVA中的文件编码,区分不同编码间的区别。

2,解析字符串“我爱JAVA”的代码如下:

package cn.edu.io;

public class io{

public static void main(String[] args) throws Exception {

String s="我爱JAVA";

/*

* 转换成字节序列

* 不传参数时,用的是系统默认的编码方式

* 右击——Properties查看

* 用的是GBK

*/

byte[] by=s.getBytes();

//遍历字节序列的内容

for (byte b:by) {

//把字节转换成了int,并以十六进制显示,(b & 0xff)作用是去掉b的前24个0

System.out.print(Integer.toHexString(b & 0xff)+" ");

//从输出的结果可以发现,GBK编码中文占用两个字节,英文占用一个字节

}

System.out.println();

//也可以自定义编码方式

byte[] by2=s.getBytes("UTF-8");

for (byte b:by2) {

System.out.print(Integer.toHexString(b & 0xff)+" ");

//从输出的结果可以发现,UTF-8编码中文占用三个字节,英文占用一个字节

}

System.out.println();

//java是双字节编码,即UTF-16be

byte[] by3=s.getBytes("UTF-16be");

for (byte b:by3) {

System.out.print(Integer.toHexString(b & 0xff)+" ");

//从输出的结果可以发现,UTF-16be编码中文占用两个字节,英文占用两个字节

}

}

}

3,输出结果为:

ce d2
b0 ae 4a
41 56 41

e6 88 91 e7 88 b1 4a 41
56 41

62 11 72 31 0 4a 0 41
0 56
0 41

为了便于观察,用不同的颜色来把不同的字符区分开,同一种颜色表示一个字符
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: