この記事はバージョン Golang 1.6 用です
まず第一に、Go には 2 つのテンプレート パッケージがあります。1 つは HTML を解析して適切な場所でエンコードを実行できる html/template で、もう 1 つはtext/template、名前からこれはプレーンテキストに基づいたテンプレート処理であることがわかります。そのため、エンコードエスケープが必要な場合は、手動で関数を追加する必要があります。ドキュメントはここにあります。テンプレート内の関数呼び出し形式は次のとおりです:
functionName [Argument...]
text/template には多くの定義済み関数があります。ここでは、HTML、JavaScript、URL のエスケープに焦点を当てます。これらは、それぞれ html、js、および urlquery の 3 つの関数に対応します。これら 3 つの関数を使用し、最後にパラメータを追加します。
完全なサンプルコード:
package mainimport ( "bytes" "fmt" "text/template")func main() { t := template.Must(template.New("test").Parse("原始:{{.}}\nHTML:{{html .}}\nJS:{{js .}}\nURL:{{urlquery .}}")) buffer := &bytes.Buffer{} err := t.Execute(buffer, "刘 123 <> \"") if err != nil { panic(err) } fmt.Print(buffer.String())}
出力:
原始:刘 123 <> "HTML:刘 123 <> "JS:刘 123 \x3C\x3E \"URL:%E5%88%98+123+%3C%3E+%22