Шаблоны Go автоматически экранируются, но только пять символов ‹>&' и " (см. 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 для отображения текста, который может содержать такие символы, как äåüöß?
Не то чтобы я мог избежать этого сам, потому что, например. «ä» заменяется на «», что означает, что после того, как я убегу вручную, golang просто экранирует часть символа «&» во второй раз, и я получаю «auml;» (но html-файл должен содержать один экранированный "", чтобы браузер отображал "").
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
в<head/>
... - person BadZen   schedule 14.06.2016