Wie können wir "\u003chtml\u003e"
direkt in "<html>"
konvertieren? Die Umwandlung von "<html>"
zu "\u003chtml\u003e"
ist ziemlich einfach unter Verwendung von json.Marshal()
, aber json.Unmarshal()
ist ziemlich lang und umständlich. Gibt es einen direkten Weg, dies in Golang zu tun?Wie wandeln Sie Escape-Zeichen in HTML-Tags um?
Antwort
Sie können die strconv.Unquote()
verwenden, um die Konvertierung durchzuführen.
Eine Sache, die Sie beachten sollten, ist, dass strconv.Unquote()
kann nur unquote Zeichenfolgen, die in Anführungszeichen gesetzt sind (zum Beispiel mit einem Zitat char beginnen und enden "
oder zurück Gänsefüsschen `
), so haben wir, dass manuell anhängen.
Beispiel:
// Important to use backtick ` (raw string literal)
// else the compiler will unquote it (interpreted string literal)!
s := `\u003chtml\u003e`
fmt.Println(s)
s2, err := strconv.Unquote(`"` + s + `"`)
if err != nil {
panic(err)
}
fmt.Println(s2)
Output (versuchen Sie es auf dem Go Playground):
\u003chtml\u003e
<html>
Hinweis: HTML Text zu tun und URL-Kodierung zu entkommen, können Sie das html
Paket verwenden . Zitieren seiner doc:
Paket html bietet Funktionen zum Entkommen und Unerledigungs HTML-Text.
Aber die html
Paket (speziell html.UnescapeString()
) nicht dekodieren nicht Unicode-Sequenzen der Form \uxxxx
, nur &#decimal;
oder &#xHH;
.
Beispiel:
fmt.Println(html.UnescapeString(`\u003chtml\u003e`)) // wrong
fmt.Println(html.UnescapeString(`<html>`)) // good
fmt.Println(html.UnescapeString(`<html>`)) // good
Output (versuchen Sie es auf dem Go Playground):
\u003chtml\u003e
<html>
<html>
Hinweis # 2:
Sie sollten auch beachten, dass, wenn Sie schreiben ein Code wie dieser:
s := "\u003chtml\u003e"
Diese zitierte Zeichenfolge wird vom Compiler selbst unquoted werden, da es eine interpretiert Stringliteral ist, so dass Sie nicht wirklich testen können. Um Zeichenfolge in Anführungszeichen in der Quelle angeben, können Sie die Graviszeichen verwenden, um ein roher Stringliteral angeben oder Sie können einen doppelten Anführungszeichen interpretiert Stringliteral verwenden:
s := "\u003chtml\u003e" // Interpreted string literal (unquoted by the compiler!)
fmt.Println(s)
s2 := `\u003chtml\u003e` // Raw string literal (no unquoting will take place)
fmt.Println(s2)
s3 := "\\u003chtml\\u003e" // Double quoted interpreted string literal
// (unquoted by the compiler to be "single" quoted)
fmt.Println(s3)
Ausgang:
<html>
\u003chtml\u003e
Sie können das Zeichenfolgenformatierungspaket fmt
für diesen Bereich verwenden.
fmt.Printf("%v","\u003chtml\u003e") // will output <html>
Eigentlich ist '" \ u003chtml \ u003e "' vom Compiler nicht quoted, nicht vom 'fmt' Paket. Sie werden es sehen, wenn Sie es mit dem Backtick versuchen: ' – icza
- 1. wandeln Sie jSon in das Wörterbuch um
- 2. Wie htmltags LabelFor
- 3. Wie wandeln Sie Strings mit perfekter Genauigkeit in Floats um?
- 4. Wandeln Sie C# SurfaceListBox in ein JSON-Array um
- 5. So wandeln Sie einzelne Elementliste in Java um 8 Optional
- 6. So wandeln Sie ein lokales Datum in GMT um
- 7. So wandeln Sie XML in XSL-FO um
- 8. Wandeln Sie ein 2D-Nummernfeld in C++ um.
- 9. So wandeln Sie eine boolesche in eine lokalisierte Zeichenfolge um
- 10. wandeln Sie die Zeichenfolge yyyyMM in Mon um - yyyy
- 11. HtmlTags in Resx in @ Html.ValidationMessageFor angezeigt
- 12. Lesen (?) Escapezeichen
- 13. RSpec, Webrat und Escapezeichen
- 14. MDX-Escapezeichen CDE Pentaho
- 15. python wandeln eine Zeichenkette in ein xls-Dokument um
- 16. wandeln Sie einen `find` ähnlichen Ausgang in einen` Baum` wie Ausgang um
- 17. wandeln exponentiellen in Python Dezimal
- 18. Regex, um ein Wort zu finden, das ein Escapezeichen enthält
- 19. wandeln Sie Json in eine vektorisierte Weise in R
- 20. Regeln für C++ - Zeichenfolgenliterale Escapezeichen
- 21. (Zend) das Umhüllen Formularelement mit mehreren htmltags
- 22. Wandeln Sie in Matlab eine Dezimalzahl, die nicht ganzzahlig ist, in Basis 4 um?
- 23. Konfigurieren Sie native vi, um Leerzeichen anstelle von Tabs auszugeben, und wandeln Sie nicht automatisch eingefügte Leerzeichen in Tabs um?
- 24. So wandeln Sie ein Double * in ein Array um <double> (6)
- 25. wandeln Sie ein Array von komplexen Zahlen in reelle Zahl
- 26. So wandeln Sie eine Google Places-Fotoaufzeichnung in eine URL um
- 27. So wandeln Sie eine Zeichenfolge in eine 7-Bit-Binärdatei um
- 28. So wandeln Sie ein englisches Google Mail-Imap-Datum in ein französisches Datumsformat um
- 29. So wandeln Sie ein JavaScript-Datum in eine andere Zeitzone um
- 30. So wandeln Sie ein 2D-Array in Raster
Danke lieber Herr! Du bist toll! :) –