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
为了便于观察,用不同的颜色来把不同的字符区分开,同一种颜色表示一个字符
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
为了便于观察,用不同的颜色来把不同的字符区分开,同一种颜色表示一个字符
相关文章推荐
- 深入JVM类加载机制
- Struts2接收前端参数的三种方法
- JAVA设计模式之适配器模式
- java实现单链表的基础操作
- Spring学习笔记(三)DispatcherServlet
- 【Java基础】泛型方法
- 单链表的基础操作java实现
- IO流学习笔记
- java语言基础
- Java虚拟机(JVM)以及跨平台原理
- Java环境变量设置
- Java Timer的使用
- Java使用内存映射实现大文件的上传
- Maven学习 (二) Eclipse 上安装 Maven3插件
- Java框架介绍:Quartz从入门到进阶
- eclipse装HTML编辑器
- Eclipse CDT Hello World工程makefile分析
- 如何将已有文件导入eclipse中
- 用java开发简易接口测试工具
- ActiveMQ入门示例