加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

将“=?UTF 8?”(RFC 2047)转换为golang中的常规字符串

发布时间:2020-12-16 19:03:57 所属栏目:大数据 来源:网络整理
导读:我正在使用API??,它正在为其他语言文本返回这样的内容: =?UTF-8 2 B 4 2KfZhNiu2LfZiNin2Kog2KfZhNiq2Yog2KrYrNmF2Lkg2KjZitmG?= =?UTF-8 2 B 4 INit2YHYuCDYp9mE2YLYsdin2ZPZhiDYp9mE2YPYsdmK2YUg2YjZgQ ==?= =?UTF-8 2 B 4 2YfZhdmHINmF2YXYpyDYp9mU
我正在使用API??,它正在为其他语言文本返回这样的内容:

=?UTF-8 2 B 4 2KfZhNiu2LfZiNin2Kog2KfZhNiq2Yog2KrYrNmF2Lkg2KjZitmG?= =?UTF-8 2 B 4 INit2YHYuCDYp9mE2YLYsdin2ZPZhiDYp9mE2YPYsdmK2YUg2YjZgQ ==?= =?UTF-8 2 B 4 2YfZhdmHINmF2YXYpyDYp9mU2YXZhNin2Ycg2KfZhNi52YTYp9mF?= =?UTF-8 2 B 4 2Kkg2LnYqNivINin2YTZhNmHINin2YTYutiv2YrYp9mGLnBkZg ==?=

这是一种常见的格式吗?我如何将它转换为golang中的常规字符串?

Golang通常可以很好地处理多种语言,但我不确定如何进行转换.

很明显,您的API将返回在 RFC 2047 format中编码的数据.基本上,这定义了以下内容:
encoded-word = "=?" charset "?" encoding "?" encoded-text "?="

这意味着你的charset是UTF-8(非常方便,因为这是Go的本机字符集),你的编码是Base64.您必须解码的文本是“B?”之间的文本.和“?=”.所以你要做的就是接受那个文字并打电话:

base64.StdEncoding.DecodeString(text)

获取原始的UTF-8字符串.

Go stdlib的net / mail包中有一个decodeRFC2047Word()函数,支持编码B和Q以及字符集UTF-8,US-ASCII和ISO-8859-1.不幸的是它没有出口,但你可以随心所欲地从中获取灵感;)

顺便说一句:我刚刚注意到你的示例字符串中的字符集是UTF 8,这有点奇怪,因为编码的官方名称是UTF-8.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读