2016-06-14 7 views
2

Go-Vorlagen Auto-Flucht, sondern nur die fünf Zeichen <> &' und"Wie Sonderzeichen (außer <> & entkommen '") in golang Vorlagen?

sodass dieser Code wie

( html.EscapeString sehen)
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) 

kehrt (wie Sie können hier überprüfen: Go Playground)

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

wie verwende ich golang Vorlagen Text zu machen das kann Zeichen wie äåüöß enthalten?

Es ist nicht wie ich konnte diese selbst entkommen, weil z.B. "ä" entweicht zu "& auml;" was bedeutet, dass, nachdem ich manuell entkommen, golang gerade entkommt die "&" Zeichen Teil dieser ein zweites Mal und ich bekomme "& amp; auml;" (aber die html-Datei sollte ein einzelnes maskiertes "& auml;" enthalten, so dass der Browser eine "ä" anzeigt).

+0

Warum müssen Sie Entitäten für diese Zeichen fliehen/verwenden? Sie sind in utf-8 und iso-8859-1 encodings in Ordnung, glaube ich ... – BadZen

+0

weil ich ein deutscher Typ bin, der in Schweden lebt, so können Daten (zB Nachnamen) diese Zeichen enthalten und derzeit ein "ö " sieht aus wie¶". – StephanS

+0

Welche Zeichencodierung gibt Ihr HTML-Dokument an? (Im Idealfall können Sie uns mit der Seite verlinken, die Sie gerade betrachten? Der Server kann die Dokumenteinstellung außer Kraft setzen ...) – BadZen

Antwort

1

Diese Zeichen sind in modernen Browsern unverändert, aber Sie müssen eine Zeichencodierung in Ihrer Webseite angeben.

die Zeile hinzufügen

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

in den Kopf Ihres Dokuments. Weitere Informationen zu Zeichenkodierungen in HTML finden Sie unter W3C documentation.