我正在尝试使用GB2312
字符集获取编码值,但我得到了? '而不是'®'
以下是我的示例代码:
new String("Test ®".getBytes("GB2312"));
但我正在接受测试?而不是Test®。
有人遇到过这个问题吗?
Java版本 - JDK6
平台:Window 7
我不知道中文字符编码所以需要建议。
此致
马赫什
答案 0 :(得分:0)
为了更好地理解,该声明分为两部分:
byte[] bytes = "Test ®".getBytes("GB2312"); // bytes, encoding the string to GB2312
new String(bytes); // back to string, using default encoding
可能®
不是有效的GB2312字符,因此会转换为?
。查看
Charset.forName("GB2312").newEncoder().canEncode("®")
未指定此字符串无法在给定字符集中进行编码时此方法的行为。当需要更多地控制编码过程时,应该使用CharsetEncoder类。
也建议使用CharsetEncoder
。