Pengekodan Teks dalam Go
Apabila bekerja dengan data teks, selalunya perlu menukar antara pengekodan yang berbeza. UTF-8 ialah pengekodan yang digunakan secara meluas yang mampu mewakili pelbagai jenis aksara.
Soalan: Bagaimanakah anda menukar teks daripada pengekodan seperti Windows-1256 Arabic kepada UTF- 8 in Go?
Jawapan:
Untuk melaksanakan ini penukaran, gunakan pakej pengekodan yang tersedia dalam Go. Selain itu, pakej golang.org/x/text/encoding/charmap menyediakan sokongan untuk pelbagai pengekodan, termasuk Windows-1256.
Contoh:
Coretan kod berikut menunjukkan cara mengekod teks daripada UTF-8 Jepun ke ShiftJIS dan kemudiannya menyahkodnya kembali ke UTF-8:
package main import ( "bytes" "fmt" "io/ioutil" "strings" "golang.org/x/text/encoding/japanese" "golang.org/x/text/transform" ) func main() { // Input string s := "今日は" fmt.Println(s) // Encode: Convert s from UTF-8 to ShiftJIS var b bytes.Buffer wInUTF8 := transform.NewWriter(&b, japanese.ShiftJIS.NewEncoder()) wInUTF8.Write([]byte(s)) wInUTF8.Close() encodedBytes := b.Bytes() fmt.Printf("%#v\n", encodedBytes) encS := string(encodedBytes) fmt.Println(encS) // Decode: Convert encodedBytes from ShiftJIS to UTF-8 rInUTF8 := transform.NewReader(strings.NewReader(encS), japanese.ShiftJIS.NewDecoder()) decodedBytes, _ := ioutil.ReadAll(rInUTF8) decodedString := string(decodedBytes) fmt.Println(decodedString) }
Untuk contoh yang lebih komprehensif, rujuk pautan berikut: https://ja.stackoverflow.com/questions/6120.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Teks dari Windows-1256 ke UTF-8 dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!