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

new String(s.getBytes("ISO-8859-1"),"GBK")正确吗,该如何解决

2011-12-30 
new String(s.getBytes(ISO-8859-1),GBK)正确吗结果中文字符全部变成?(ascii编码为63).原因是iso-8859

new String(s.getBytes("ISO-8859-1"),"GBK")正确吗
结果中文字符全部变成?(ascii编码为63).
原因是iso-8859-1把“每个2Byte的Unicode字符”看成一个字符,中文无法识别。
为什么有人要这么用?

[解决办法]
没问题,就是将ISO-8859-1字符集的s变量内容转换为GBK字符集类型。这个只有在页面、后台处理程序、数据库3者之间字符集不一致的情况下使用。不是必须的
[解决办法]
写的是正确的,如楼上所说
[解决办法]
没有问题的

[解决办法]
不会丢失的
实际开发中,你要保持编码方式一致就行了
[解决办法]
utf-8能识别中文
[解决办法]

探讨
定会丢失!

Java code
String s ="h中";
byte[] b = s.getBytes("ISO-8859-1");
System.out.println("ISO-8859-1: "+Arrays.toString(b));

输出:
ISO-8859-1: [104, 63]
一个2Byte的Unicode字符,变成了一个8byte的iso8859-1字符。
is08859-1无法识别中文,故变成‘?’
这就丢失了中文信息。

[解决办法]
我也想知道,在超过ASCII范围时显示的那个'?',是真的把内容变成字符'?'了,还是只是这样显示而已,实际值没变?
[解决办法]
ISO8859_1
[解决办法]
探讨
没问题,就是将ISO-8859-1字符集的s变量内容转换为GBK字符集类型。这个只有在页面、后台处理程序、数据库3者之间字符集不一致的情况下使用。不是必须的

热点排行