当您在Gmail中的HTML电子邮件中连续输入两个空格时,如果您查看电子邮件的来源,它会将其编码到quoted-printable正文中,如“= C2 = A0”。

根据这个stackoverflow的答案,由于UTF-8编码,这应该被解码时转换为00A0(nbsp): https ://stackoverflow.com/a/2774507

但是,在Golang中,这不是它的工作方式:

s := `Text Text Text.=C2=A0 That's just two spaces`

r := strings.NewReader(s)

qpReader := quotedprintable.NewReader(r)

all, _ := ioutil.ReadAll(qpReader)

str := string(all)

fmt.Println(strings.Index(str, "\xC2\xA0"))

这输出“15”,这是Playground链接: https : //play.golang.org/p/8n6L7dlZPt

而不是在那里使用NBSP,它将保留\ xC2并导致“文本文本文本只有两个空格”。

将\ x00A0正确渲染的最佳方法是什么?