Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menukar Urutan Melarikan HTML dengan Cekap dalam Go?
Menukar Aksara Melarikan Diri dalam Teg HTML
Dalam Go, penukaran teg HTML yang mengandungi aksara melarikan diri tidak semudah yang diingini. Walaupun json.Marshal() boleh menukar rentetan dengan aksara seperti "<" dengan mudah kepada urutan pelariannya "u003chtmlu003e," json.Unmarshal() tidak menyediakan kaedah langsung dan cekap untuk operasi songsang.
Menggunakan strconv.Unquote()
Fungsi strconv.Unquote() boleh digunakan untuk melakukan penukaran. Walau bagaimanapun, ia memerlukan rentetan untuk disertakan dalam tanda petikan. Oleh itu, penambahan aksara lampiran ini secara manual adalah perlu.
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>Nota:</strong></p> <p>Pakej html juga tersedia untuk teks HTML melarikan diri dan tidak melarikan diri. Walau bagaimanapun, ia tidak menyahkod jujukan unicode dalam bentuk uxxxx, hanya decimal; atau 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>
Nota 2:
Ingat bahawa rentetan yang dipetik menggunakan petikan berganda ( ") ialah rentetan yang ditafsirkan, yang tidak dipetik oleh pengkompil. Untuk menentukan rentetan dengan petikannya utuh, gunakan backticks untuk mencipta rentetan mentah 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
Atas ialah kandungan terperinci Bagaimana untuk Menukar Urutan Melarikan HTML dengan Cekap dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!