求助String()构造函数

diablo_hjn 05-12-28

今天遇到一个问题:

byte[] b = new byte[]{(byte)131,(byte)233};
String name = new String(b,"gbk");

理想结果name应该是"",而现在却是乱码.

背景:
操作系统:ibm aix
系统默认字符集:iso8859-1

结果:
name.getBytes("gbk")返回的字节数组只有一个字节0x3f,应该有两个字节才对(0x83,0xe9)
如果 String name = new String(b);这时由name得到的字节数组是正确的,
现在不明白的是为什么new String(b,"gbk")就错了呢?

请大家帮我解答一下.谢了.

banq
2006-01-05 20:02

Java乱码问题主要是在各个环节:编程  编译 运行等都=必须维持同一种编码类型,详见:
http://www.jdon.com/idea/chinesejava.htm