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

请问如何能将GB2312编码的字符串转换为ISO-8859-1编码的字符串
最近遇到一道题目,要写出将GB2312编码的字符串转换为ISO-8859-1编码的字符串的方法,在网上搜了下,发现这个问题没有很好的解答,用new   String(GBstr.getBytes( "GB2312 "), "ISO-8859-1 ");得到的还是问号,就是无法识别的字符,如果中文本身就没有对应的ISO-8859-1编码字符,那转换还有什么意义呢?如何可以转换,那如何把转换过去的ISO-8859-1编码的字符再转回GB2312格式的中文字符呢?请知道的朋友帮忙解答下,谢谢!

------解决方案--------------------
编码转换就是
new String(GBstr.getBytes( "原有编码 "), "目标编码 ");
如果你只有原有编码的话就这样转换
常用的有
GBK
ISO-8859-1
UTF-8
GB2312
------解决方案--------------------
得到的应该是????没有错, 因为ISO-8859-1本身就不能正常显示中文呀~

你再转换回GB2312试试!
------解决方案--------------------
?字符串不是unicode的吗?
lz指的是GB2312的byte[]转ISO-8859-1的byte[]?
------解决方案--------------------
GB2312编码的字符串转换为ISO-8859-1编码的字符串?

-------------------------------------------------------

java使用UNICODE表示字符串,所以你不可能成功。
------解决方案--------------------
up
------解决方案--------------------
本贴乃IQ题


鉴定完毕
------解决方案--------------------
字符串是没有编码区别的
有区别的是存储字符串的字节序列有编码区分
因此应该是说,把GB2312编码的字符串字节序列转化为ISO-8859-1编码的字节序列