GoでHTMLエスケープ処理をする。

GoでHTMLのエスケープ処理をしたい場合は"html"パッケージを使います。
エスケープはEscapeString、アンエスケープはUnescapeStringを使います。


func HTMLEscapeString(s string) string
func UnescapeString(s string) string

"html/template"にはio.Writerへ出力するHTMLEscapeがあります。


func HTMLEscape(w io.Writer, b []byte)

interfaceを引数にとるものもあります。


func HTMLEscaper(args ...interface{}) string

EscapeStringと同じ機能のHTMLEscapeStringもあります。


func HTMLEscapeString(s string) string

package main

import (
    "fmt"
    "html"
    "html/template"
    "os"
)

func main() {
    const s = `"neko & dog"`
    v := []interface{}{`"neko"`, '&', `"dog"`}

    fmt.Println(html.EscapeString(s))
    fmt.Println(template.HTMLEscapeString(s))
    template.HTMLEscape(os.Stdout, []byte(s))
    fmt.Fprintln(os.Stdout, "")
    fmt.Println(template.HTMLEscaper(v...))
}

この記事へのコメント

最近のトラックバック