Mengalih keluar Diakritik dalam Go
Apabila bekerja dengan rentetan yang dikodkan UTF8, mungkin perlu mengalih keluar diakritik, seperti aksen daripada "žůžo " untuk mendapatkan "zuzo". Untuk mengendalikan senario sedemikian dengan cekap, terdapat perpustakaan dan teknik standard yang tersedia dalam Go.
Satu pendekatan melibatkan memanfaatkan fungsi unicode.Is() untuk mengenal pasti diakritik (aksara yang dikelaskan sebagai "Mn" untuk tanda bukan jarak).
Coretan kod berikut menunjukkan cara mengalih keluar diakritik daripada rentetan tertentu menggunakan unikod/norma dan pakej golang.org/x/text/transform:
package main import ( "fmt" "unicode" "golang.org/x/text/transform" "golang.org/x/text/unicode/norm" ) func isMn(r rune) bool { return unicode.Is(unicode.Mn, r) // Mn: nonspacing marks } func main() { t := transform.Chain(norm.NFD, transform.RemoveFunc(isMn), norm.NFC) result, _, _ := transform.String(t, "žůžo") fmt.Println(result) }
Kod ini mengalih keluar diakritik dengan menggunakan siri transformasi:
Sebagai hasilnya, output akan menjadi rentetan diakritik yang dilucutkan, seperti dalam contoh: "žůžo" => "zuzo".
Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Diakritik dengan Cekap daripada Rentetan UTF-8 dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!