2016-06-14 14:44
浏览 1.2k


Go templates auto-escape but only the five characters <>&' and " (see html.EscapeString)

so this code like

check := func(err error) {
    if err != nil {
t, err := template.New("foo").Parse(`{{define "T"}}special chars: {{.}}{{end}}`)
err = t.ExecuteTemplate(os.Stdout, "T", "<>&' äåüöß")

returns (as you can check here: Go Playground)

special chars: &lt;&gt;&amp;&#39; äåüöß

So how do i use golang templates to render text that may contain characters like äåüöß?

It's not like i could escape these myself, because e.g. "ä" escapes to "&auml;" which means that efter i escape manually, golang just escapes the "&" character part of that a second time and i get "&amp;auml;" (but the html-file should contain a single escaped "&auml;" so that the browser displays an "ä").

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题