日期:2014-05-20  浏览次数:20838 次

关于getBytes()问题...
求new String(fileName.getBytes("GBK"),"ISO8859-1") 和
new String(fileName.getBytes("ISO8859-1"),"GBK") 区别详细解释...

------解决方案--------------------
一个是把编码格式从GBK变成ISO8859-1
另一个是把编码格式从ISO8859-1变成GBK
------解决方案--------------------
API文档。。。
------解决方案--------------------
String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组.
byte[] b=fileName.getBytes("GBK")方法会根据指定的"GBK"编码返回某字符串在该编码下的byte数组
new String(fileName.getBytes("GBK"),"ISO8859-1")是使用ISO8859-1指定的编码来将fileName.getBytes("GBK")解析成字符串

简单点

就是由GBK 转为 ISO8859-1.
另一个相反
------解决方案--------------------
fileName.getBytes("GBK")是以“GBK”的编码格式获取fileName的byte数组;
new String(fileName.getBytes("GBK"),"ISO8859-1")是将获取的byte数组解析成“ISO8859-1”编码格式的字符串。

new String(fileName.getBytes("ISO8859-1"),"GBK") 正好与 new String(fileName.getBytes("GBK"),"ISO8859-1")相反。

这个一般用来处理页面中的乱码。
------解决方案--------------------
第一个明白了,第二个也就明白

第一个是gbk转换为ISO8859-1
------解决方案--------------------
探讨

一个是把编码格式从GBK变成ISO8859-1
另一个是把编码格式从ISO8859-1变成GBK

------解决方案--------------------
探讨

一个是把编码格式从GBK变成ISO8859-1
另一个是把编码格式从ISO8859-1变成GBK

------解决方案--------------------
囧,就是把前面的编码格式转换成后面的