Home >Backend Development >Golang >How to Efficiently Convert HTML Escape Sequences in Go?
Converting Escape Characters in HTML Tags
In Go, the conversion of HTML tags containing escape characters is not as straightforward as desired. While json.Marshal() can easily convert strings with characters like "<" to its escape sequence "u003chtmlu003e," json.Unmarshal() does not provide a direct and efficient method for the reverse operation.
Using strconv.Unquote()
The strconv.Unquote() function can be employed to perform the conversion. However, it requires the string to be enclosed in quotation marks. Therefore, adding these enclosing characters manually is necessary.
import ( "fmt" "strconv" ) func main() { // 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:
\u003chtml\u003e <html></p> <p><strong>Note:</strong></p> <p>The html package is also available for HTML text escaping and unescaping. However, it does not decode unicode sequences of the form uxxxx, only decimal; or HH;.</p> <pre class="brush:php;toolbar:false">import ( "fmt" "html" ) func main() { fmt.Println(html.UnescapeString(`\u003chtml\u003e`)) // wrong fmt.Println(html.UnescapeString(`&#60;html&#62;`)) // good fmt.Println(html.UnescapeString(`&#x3c;html&#x3e;`)) // good }
Output:
\u003chtml\u003e <html> <html>
Note 2:
Remember that quoted strings using the double quote (") are interpreted strings, which are unquoted by the compiler. To specify a string with its quotes intact, use backticks to create a raw string literal.
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)
Output:
<html> \u003chtml\u003e
The above is the detailed content of How to Efficiently Convert HTML Escape Sequences in Go?. For more information, please follow other related articles on the PHP Chinese website!