Dalam beberapa tahun kebelakangan ini, bahasa Go (golang) telah menjadi semakin popular di kalangan pengaturcara. Sebagai bahasa pengaturcaraan umum, ia menyokong pelbagai jenis data dan struktur seperti bahasa lain. Golang juga mempunyai beberapa ciri hebat semasa memproses rentetan. Artikel ini akan memberi tumpuan kepada cara melaksanakan fungsi pengekodan rentetan dalam golang.
Dalam pustaka terbina dalam golang, terdapat pakej yang dipanggil pengekodan, yang menyediakan sokongan untuk banyak pengekodan dan penyahkodan rentetan. Apabila berurusan dengan pengekodan rentetan, perkara yang paling penting ialah memahami konsep pengekodan aksara. Pengekodan aksara diperkenalkan untuk menukar aksara yang digunakan oleh manusia kepada nilai binari yang boleh difahami dan diproses oleh komputer. Aplikasi penting pengekodan aksara adalah untuk menyelesaikan masalah paparan dan penyimpanan aksara dalam persekitaran bahasa yang berbeza.
Dalam golang, pengekodan aksara biasa termasuk ASCII, UTF-8, UTF-16, GBK, GB2312, dsb. Di bawah ini kami akan memperkenalkan kaedah pelaksanaan penukaran rentetan satu demi satu.
ASCII (Kod Standard Amerika untuk Pertukaran Maklumat) ialah pengekodan aksara binari tujuh bit. Ia adalah salah satu pengekodan aksara yang terawal dan paling asas, yang mengandungi hanya huruf Inggeris, nombor dan beberapa tanda baca. Dalam golang, pengekodan ASCII digunakan secara meluas dan kita boleh menggunakannya secara terus dalam rentetan.
Sebagai contoh, untuk menukar rentetan kepada pengekodan ASCII, kodnya adalah seperti berikut:
package main import ( "fmt" ) func main() { str := "hello world" strAscii := []byte(str) // 转为 ASCII 编码 fmt.Println(strAscii) // [104 101 108 108 111 32 119 111 114 108 100] }
UTF- 8 (Format Pemindahan UCS-8) ialah pengekodan aksara panjang berubah-ubah yang menyokong semua aksara unikod. Dalam golang, pengekodan UTF-8 ialah kaedah pengekodan yang digunakan secara lalai Anda boleh terus menggunakan fungsi dalam pustaka terbina dalam golang, contohnya:
package main import ( "fmt" ) func main() { str := "UTF-8编码测试" strUtf8 := []byte(str) // 转为 UTF-8 编码 fmt.Println(strUtf8) // [85 84 70 45 56 231 154 132 49 229 133 172 229 143 184 227 131 163] }
UTF-16 ialah pengekodan aksara panjang tetap yang menggunakan 2 bait untuk mewakili setiap aksara unikod Ia biasanya digunakan dalam bahasa Asia seperti Cina, Jepun dan Korea. Dalam golang, penukaran antara rentetan dan pengekodan UTF-16 boleh dicapai dengan menggunakan pakej pengekodan terbina dalam, contohnya:
package main import ( "fmt" "unicode/utf16" ) func main() { str := "中国加油" strUtf16 := utf16.Encode([]rune(str)) // 转为 UTF-16 编码 fmt.Println(strUtf16) // [20013 22269 39532 32423] }
GBK ialah set aksara lanjutan untuk pengekodan aksara Cina, terutamanya untuk bidang bahasa Cina. Berbanding dengan pengekodan aksara Cina GB2312 asal, GBK menambah lebih banyak set aksara untuk menyokong julat persekitaran bahasa yang lebih luas. Dalam golang, penukaran antara rentetan dan pengekodan GBK boleh dicapai dengan menggunakan pakej pengekodan terbina dalam, contohnya:
package main import ( "fmt" "golang.org/x/text/encoding/simplifiedchinese" ) func main() { str := "我的世界" strGbk, _ := simplifiedchinese.GBK.NewEncoder().Bytes([]byte(str)) // 转为 GBK 编码 fmt.Println(strGbk) // [25105 30340 19978 30028] }
Melalui contoh di atas, kita boleh mengetahui cara melaksanakan pengekodan rentetan dalam fungsi golang adalah sangat mudah. Sebagai tambahan kepada kaedah pengekodan di atas, golang juga menyokong pelbagai kaedah pengekodan lain, seperti base64, dsb. Bagi pengaturcara golang, mempelajari perkara ini adalah satu kemestian untuk mendapatkan gambaran yang lebih baik tentang pengetahuan berkaitan rentetan.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan penukaran rentetan dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!