gpt4 book ai didi

string - 将 "=?UTF 8?.."(RFC 2047) 转换为 golang 中的常规字符串

转载 作者:IT王子 更新时间:2023-10-29 01:24:10 24 4
gpt4 key购买 nike

我正在使用一个 API,它为其他语言文本返回类似这样的内容:

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

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

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

最佳答案

显然您的 API 正在返回编码为 RFC 2047 format 的数据.基本上,这定义了以下内容:

encoded-word = "=?" charset "?" encoding "?" encoded-text "?="

这意味着您的字符集是 UTF-8(非常方便,因为这是 Go 的 native 字符集),并且您的编码是 Base64。您必须解码的文本是“B?”之间的文本。和“?=”。所以你所要做的就是拿走那条短信并打电话:

base64.StdEncoding.DecodeString(text)

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

有一个decodeRFC2047Word() Go 标准库的 net/mail 包中的函数,支持编码 BQ 以及字符集 UTF-8US-ASCIIISO-8859-1。遗憾的是它没有导出,但您可以根据需要从中自由获取灵感 ;)

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

关于string - 将 "=?UTF 8?.."(RFC 2047) 转换为 golang 中的常规字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28932140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com