首頁 > 後端開發 > Golang > 如何在 Go 中高效轉換 HTML 轉義序列?

如何在 Go 中高效轉換 HTML 轉義序列?

Susan Sarandon
發布: 2024-12-17 15:22:16
原創
646 人瀏覽過

How to Efficiently Convert HTML Escape Sequences in Go?

轉換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(`&amp;#60;html&amp;#62;`))   // good
    fmt.Println(html.UnescapeString(`&amp;#x3c;html&amp;#x3e;`)) // good
}
登入後複製

輸出:

\u003chtml\u003e
<html>
登入後複製

註 2:

請記住,使用雙引號 ( ")是解釋字串,編譯器不加引號。

以上是如何在 Go 中高效轉換 HTML 轉義序列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板