轉換HTML 標籤中的轉義字元
在Go 中,包含轉義字元的HTML 標籤的轉換並不像期望的標籤的轉換並不像預期的那麼簡單。而 json.Marshal() 可以輕鬆轉換帶有“
使用 strconv.Unquote()
可以使用 strconv.Unquote() 函數來執行轉換。但是,它要求將字串括在引號中。因此,需要手動添加這些封閉字元。
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) }
輸出:
\u003chtml\u003e <html>
注意:
html 套件也可用於 HTML 文字轉義和取消轉義。但是,它不解碼 uxxxx 形式的 unicode 序列,僅解碼 decimal;或 HH;。
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 }
輸出:
\u003chtml\u003e <html>
註 2:
請記住,使用雙引號 ( ")是解釋字串,編譯器不加引號。
以上是如何在 Go 中高效轉換 HTML 轉義序列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!