编写程序的时候,经常遇到乱码问题,网上不少文章都有解决办法,我不才精炼了一下:
1.乱码产生的原因
[img]http://dl2.iteye.com/upload/attachment/0088/5616/dbf6529a-94a0-34b4-984d-6119f9f84280.jpg[/img]
问题就产生在图中圈圈的位置,程序在运行时jvm会按照系统默认的编码将信息转换为UNICODE进行处理,如果输入的信息与当前系统的默认编码不一致,jvm依然会使用系统默认编码进行转换,造成乱码。例如,输入的信息是utf-8,系统编码是gbk,这样jvm就会把utf-8编码的信息按照gbk编码转换为UNICODE,造成乱码。
2.解决办法
方法很简单,网上很多,我摘抄一段:
new String(str.getBytes("utf-8"), "gbk");
1.乱码产生的原因
[img]http://dl2.iteye.com/upload/attachment/0088/5616/dbf6529a-94a0-34b4-984d-6119f9f84280.jpg[/img]
问题就产生在图中圈圈的位置,程序在运行时jvm会按照系统默认的编码将信息转换为UNICODE进行处理,如果输入的信息与当前系统的默认编码不一致,jvm依然会使用系统默认编码进行转换,造成乱码。例如,输入的信息是utf-8,系统编码是gbk,这样jvm就会把utf-8编码的信息按照gbk编码转换为UNICODE,造成乱码。
2.解决办法
方法很简单,网上很多,我摘抄一段:
new String(str.getBytes("utf-8"), "gbk");