在mht文件中,可以看到汉字的编码变了,如“中国”变为“中国”这种其实 是unicode码的10进制表示,我们在java中一般看到的unicode码都是16进制的。主要写个10进制unicode和16进制unicode转换程序,以后可以参考一下,这个对于这次项目中查询数据并根据模板导出到word中,解决了几周来的乱码问题。
public class TestUnicode {
public static void main(String[] args) {
//将中文转成16进制的表示
System.out.println("/u" + Integer.toHexString('中')); //“/u4e2d”
System.out.println("/u" + Integer.toHexString('中' & 0xffff)); //“/u4e2d”
//将中文转成10进制的表示
System.out.println("&#" + (int)'中' + ";"); //中
System.out.println("&#" + ('中' & 0xffff) + ";"); //中
//将10/16进制的表示转成汉字
System.out.println((char) 20013); //中
System.out.println((char) 0x4e2d); //中
}
}
public static void main(String[] args) {
//将中文转成16进制的表示
System.out.println("/u" + Integer.toHexString('中')); //“/u4e2d”
System.out.println("/u" + Integer.toHexString('中' & 0xffff)); //“/u4e2d”
//将中文转成10进制的表示
System.out.println("&#" + (int)'中' + ";"); //中
System.out.println("&#" + ('中' & 0xffff) + ";"); //中
//将10/16进制的表示转成汉字
System.out.println((char) 20013); //中
System.out.println((char) 0x4e2d); //中
}
}
本文介绍了一个简单的Java程序,用于演示如何将中文字符转换为16进制和10进制的Unicode编码,并从这些编码还原回原始的中文字符。通过这个程序,解决了项目中遇到的乱码问题。
998

被折叠的 条评论
为什么被折叠?



