将“=?UTF 8?”(RFC 2047)转换为golang中的常规字符串
我正在使用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包中有一个 顺便说一句:我刚刚注意到你的示例字符串中的字符集是UTF 8,这有点奇怪,因为编码的官方名称是UTF-8. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |