首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用问号(?)替换"GB2312“字符的Java编码

用问号(?)替换"GB2312“字符的Java编码
EN

Stack Overflow用户
提问于 2017-06-29 19:17:33
回答 1查看 202关注 0票数 0

我正在尝试使用GB2312字符集获取编码值,但我得到的是'?‘而不是'®’

下面是我的示例代码:

代码语言:javascript
复制
new String("Test ®".getBytes("GB2312"));

但我要去做测试?而不是Test®。

有没有人遇到过这个问题?

Java版本- JDK6

平台:Window 7

我不知道汉字编码,所以需要建议。

EN

回答 1

Stack Overflow用户

发布于 2017-06-29 19:34:18

为了更好地理解,声明分为两部分:

代码语言:javascript
复制
byte[] bytes = "Test ®".getBytes("GB2312");  // bytes, encoding the string to GB2312
new String(bytes);  // back to string, using default encoding

可能®不是有效的GB2312字符,因此将其转换为?。查看结果

代码语言:javascript
复制
Charset.forName("GB2312").newEncoder().canEncode("®")

基于documentation of getBytes

当此字符串无法以给定的字符集进行编码时,此方法的行为未指定。当需要对编码过程进行更多控制时,应该使用CharsetEncoder类。

这也建议使用CharsetEncoder

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44823658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档