为什么汉字转码有的要用new String(pdtname.getBytes("ISO-8859-1"),"GBK")有的要用new String(pdtname.getBytes("UTF-8"),"GBK"),现在在svn中是同一个项目,一个转码在另一个电脑上还失效了?
你说的是Web项目还是客户端程序?同一个项目是指同一段代码还是项目里面的不同代码?
参考
java 编码 UTF-8、ISO-8859-1、GBK
new String(getBytes(ISO-8859-1),GBK)解决中文乱码问题分析
首先你要搞清楚两件事:
字符串是如何产生的?为什么要转码?
在一个项目中生成一个字符串,采用的编码为项目默认编码;
在一个项目中读取一个文件,首先确认文件采用的编码机制,然后读取的时候默认采用项目默认编码(除非自己指定);
不同的机器,要首先确认两台机器项目采用的默认编码;
补充下:
如果是web项目,前台页面的汉字默认采用ISO-8859-1编码;这样写new String(pdtname.getBytes("ISO-8859-1"),"GBK"),是因为你后台采用的GBK编码;
因为浏览器的地址框的编码方式是iso-8859-1,而页面还有自己独立编码方式,所以在接受数据的时候需要进行转码