首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java中常出现的乱码有关问题总结

2013-10-28 
Java中常出现的乱码问题总结转载请注明,大飞_Rflyee:http://blog.csdn.net/rflyee/article/details/132749

Java中常出现的乱码问题总结

转载请注明,大飞_Rflyee:http://blog.csdn.net/rflyee/article/details/13274907


       编码也就是计算机能识别的数据与人类友好的数据的翻译过程。计算机的基本存储单位是byte,人类友好语言(汉语英语等各种语言)用char存储吧。那么编码其实就可以理解为char-byte、byte-char这样的过程。这样char-byte之间的翻译就需要一个标准了,可惜的是每个国家根据自己国家的母语设计出了不同的翻译标准,这边导致不同标准之间的翻译过程出现不统一,自然乱码问题就出现了。

        常见的编码标准有很多,常用的能用识别中文的有GB2312、GBK、UTF-8、UTF-16。其中,GB2312与GBK类似,但是GBK范围更大,所以GB2312、GBK之间应该选用GBK;UTF-16每个字符都用2个字节编码,对于ASCII字符浪费空间,另外如果编码过程中有一个字节损坏则会影响后边的所有,但是编码效率相对高;UTF-8最大的特点是变长编码,1-4个字节来表示一个符号,节省空间,并且解决了UTF-16的安全问题。因此,utf-8适合网络传输(安全),utf-16适合本地磁盘和内存之间。

Java Web中常见的乱码:

1、servlet中获取请求参数乱码
(1)get方式:

jsp提交到servlet中,servlet中获取

OutputFormat format = OutputFormat.createPrettyPrint();             format.setEncoding("GBK");       XMLWriter writer = new XMLWriter(new FileWriter("output.xml"),format);

b、Writer使用的编码集与文档载入内存时使用的编码集不同导致乱码,使用字节流或自己封装指定编码的字符流即可(参照方法1)。


延伸阅读:http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html


转载请注明,大飞_Rflyee:http://blog.csdn.net/rflyee/article/details/13274907

热点排行