转到模板自动转义,但只有五个字符<>&'和“(见html.EscapeString)
所以这段代码就像
check := func(err error) {
if err != nil {
log.Fatal(err)
}
}
t, err := template.New("foo").Parse(`{{define "T"}}special chars: {{.}}{{end}}`)
check(err)
err = t.ExecuteTemplate(os.Stdout, "T", "<>&' äåüöß")
check(err)
返回(您可以在此处查看:Go Playground)
special chars: <>&' äåüöß
那么我如何使用golang模板渲染可能包含äåüöß等字符的文本?
我不能自己逃避这些,因为例如“ä”逃到“&amp; auml;”这意味着,在我手动逃离之后,golang就逃脱了“&amp;”第二次的角色部分,我得到“&amp; amp; auml;” (但是html文件应该包含一个转义的“&amp; auml;”,以便浏览器显示“ä”)。
答案 0 :(得分:1)
这些字符在现代浏览器中很好用,但您需要在网页中指定字符编码。
添加行
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
在你的文件头上。
有关HTML中字符编码的更多信息,请参阅W3C documentation。