java:如何将正确的charset应用于java字符串

时间:2013-08-24 17:09:44

标签: java string character-encoding

我有两个中文单词“果然有问题”,用GB3212编码。 但是,它被错误编码为ANSI并成为“别衄恀枙”。 使用十六进制编辑器,它是B9FBC8BBD3D0CECACCE2

我想用java来纠正字符集并将其存储到UTF-16。

所以,我试着:

            String wrongstr = "彆衄恀枙";
            byte[] binary = wrongstr.getBytes("BIG5");
            System.out.printf("%s", new String(binary, "GB2312"));

但我得到的是:果?有问题

我使用Notepad ++,可以看到正确的单词。我不能使用getBytes(“BIG5”)或getBytes(“US_ANSI”)或r.getBytes(“GB2312”)来获取正确的十六进制(B9FBC8BBD3D0CECACCE2)

enter image description here

我不知道出了什么问题。请提前帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

我认为那不是ANSI,它没有中文字符。但是,Big 5确实:

String wrongstr = "湖馱";
byte[] binary = wrongstr.getBytes("Big5");
System.out.printf("%s", new String(binary, "GB2312"));

因此,此代码段会提供您想要的结果。