我正在尝试使用GB2312字符集获取编码值,但我得到的是'?‘而不是'®’
下面是我的示例代码:
new String("Test ®".getBytes("GB2312"));但我要去做测试?而不是Test®。
有没有人遇到过这个问题?
Java版本- JDK6
平台:Window 7
我不知道汉字编码,所以需要建议。
发布于 2017-06-29 19:34:18
为了更好地理解,声明分为两部分:
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("®")基于documentation of getBytes
当此字符串无法以给定的字符集进行编码时,此方法的行为未指定。当需要对编码过程进行更多控制时,应该使用CharsetEncoder类。
这也建议使用CharsetEncoder。
https://stackoverflow.com/questions/44823658
复制相似问题