首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java中将数据GB2312转换为UTF-8?

如何在java中将数据GB2312转换为UTF-8?
EN

Stack Overflow用户
提问于 2012-11-02 12:04:23
回答 1查看 1.7K关注 0票数 0

如果

代码语言:javascript
复制
String a = "=?gb2312?B?rtmsMCC2=?= " // is in GB2312 format.

我想以上字符串a到UTF-8格式。如何在java中实现这一点。

EN

回答 1

Stack Overflow用户

发布于 2012-11-02 12:40:18

这不是GB2312格式,而是MIME编码的字,其中数据是使用Base64编码的,编码数据本身表示字符集GB2312中的文本。请参阅:http://en.wikipedia.org/wiki/MIME#Encoded-Word

要对此进行解码,您需要一个支持RFC2047 MIME编码字的解码器。例如,MimeUtility.decodeWord() in javax.mail

另一种选择是完全由自己来解析,但我建议您不要这么做。然而,这些步骤将是:

给出你的例子=?gb2312?B?rtmsMCC2=?=

  1. =?表示它是一个编码字。
  2. gb2312表示最终数据采用gb2312编码。
  3. ?B表示它们的有效载荷是编码的Base64。
  4. ?指示有效载荷的开始
  5. rtmsMCC2=是实际的有效载荷(作为Base64编码的数据)
  6. ?=表示编码字的结尾。
  7. 使用rtmsMCC2=解码Base64 (它似乎损坏了,但是删除尾随的=会导致字节AE D9 AC 30 20 B6)
  8. 使用AE D9 AC 30 20 B6编码转换字节gb2312 (我在这里不这么做,因为我很难将这些字节映射到实际的gb2312字符)。

另见https://www.rfc-editor.org/rfc/rfc2047

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

https://stackoverflow.com/questions/13194883

复制
相关文章

相似问题

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