高分求教java 编码问题 (高手的来)!!

2025-06-24 06:01:17
推荐回答(1个)
回答1:

用UTF8读当然会有乱码
要保证从代码编写输入和输出全部编码一致才能不出乱码
你前面都是在GBK下输入,那么你读取输出也应该是GBK,你为什么一定要用UTF8读呢?
另外应该是str
=
new
String(str.getBytes("gb2312"),"UTF-8");

String
s
=
"1.0A(T(L)↓=75℃)";
System.out.println("s
=
"+s);
到这里的时候默认就是GBK的
然后你
s
=
new
String(s.getBytes("gbk"),"UTF-8");
System.out.println("s1
=
"+s);
你现在把默认是GBK的东西从UTF8转换成GBK当然会有乱码,这无解
你的AXI那个东西是不是国外的某个包?如果说是的话,那么别人一般只认UTF8的
那么你应该s
=
new
String(s.getBytes("UTF-8"),"gbk");
然后使用AXI那个玩意存储,但是XML文件应该还是有乱码,但是你再读取的时候可以用
str
=
new
String(str.getBytes("gb2312"),"UTF-8");
还原
否则你需要修改AXI的源代码
其实如果你要生成XML文件可以使用JDOM,他对中文支持不错,用的人也多,资料也很多,我就是用的这个做XML,中文输入输出完全没有问题
另外关于数据库,要看你是什么样子的数据库,如果是MYSQL或者ORACLE那么在安装的时候会选择语言,要选择GBK,否则以后会有问题,尤其是ORACLE安装的时候不是中文而你又要使用中文那么你只有从装了
总之,只要保证输入和输出编码全部一致,那么就不会有乱码出现