Bahasa Go ialah bahasa pengaturcaraan moden dengan kecekapan, konkurensi dan mudah alih. Dalam aplikasi praktikal, selalunya perlu menangani masalah penukaran antara pengekodan yang berbeza. Artikel ini akan memperkenalkan penyelesaian penukaran pengekodan dalam golang.
Dalam komputer, aksara selalunya diwakili sebagai pengekodan digital, seperti kod ASCII, GB2312, UTF-8, dsb. Hubungan pemetaan aksara antara pengekodan yang berbeza adalah berbeza, yang juga membawa kepada kekurangan dan kelebihan masing-masing.
Kod ASCII ialah kaedah pengekodan yang biasa digunakan Ia hanya boleh mewakili 128 aksara, termasuk huruf besar dan kecil, nombor dan beberapa aksara khas, yang mengehadkan penggunaannya dalam pengantarabangsaan. GB2312 ialah kaedah pengekodan aksara Cina yang boleh mewakili kira-kira 7,000 aksara Cina, tetapi ia hanya popular di China. Begitu juga, pengekodan UTF-8 juga merupakan kaedah pengekodan yang biasa digunakan Ia boleh mewakili aksara di seluruh dunia, tetapi kelemahannya ialah apabila berurusan dengan bahasa Asia Timur, bilangan baitnya akan lebih banyak berbanding dengan GB2312 atau GB18030.
Oleh itu, adalah perlu untuk menukar antara pengekodan yang berbeza untuk digunakan dalam senario yang sepadan.
pustaka standard golang menyediakan pakej pengekodan dan unikod, yang digunakan untuk menangani isu berkaitan pengekodan dan isu berkaitan titik kod Unikod. soalan.
Dalam golang, aksara diwakili sebagai jenis rune dan rentetan terdiri daripada satu siri jenis rune. Berikut akan memperkenalkan fungsi penukaran pengekodan yang biasa digunakan dan contoh dalam golang.
2.1 Pengekodan fungsi penukaran dalam golang
Pakej 2.1.1 bait
Pakej bait menyediakan beberapa fungsi untuk membaca dan menulis data binari, sebahagian daripadanya khusus Digunakan untuk menghuraikan dan bersiri rentetan.
Fungsi nama fungsi
func ToUpperSpecial Tukar rentetan kepada huruf besar, sokong Locale tersuai
func ToLowerSpecial Tukar rentetan kepada huruf kecil, sokong Locale tersuai
func ToTitleSpecial Tukar rentetan kepada format tajuk, sokong Locale tersuai
func ToUpper Tukar rentetan kepada huruf besar
func ToLower Tukar rentetan kepada huruf kecil
func ToTitle Tukar rentetan kepada tajuk format
func Tajuk Tukarkan keseluruhan rentetan kepada format tajuk
func TrimSpace Alih keluar ruang pada permulaan dan penghujung rentetan
func Trim Alih keluar aksara Aksara yang ditentukan pada permulaan dan penghujung rentetan
func TrimFunc Mengeluarkan fungsi yang ditentukan pada permulaan dan penghujung rentetan
func TrimLeftFunc Mengeluarkan fungsi yang ditentukan di sebelah kiri rentetan
func TrimRightFunc Mengalih keluar fungsi yang ditentukan di sebelah kanan rentetan
func HasPrefix Menentukan sama ada rentetan mengandungi awalan yang ditentukan
func HasSuffix Menentukan sama ada rentetan mengandungi akhiran yang ditentukan
func Index Mengembalikan kejadian pertama subrentetan yang ditentukan dalam rentetan Kedudukan
func LastIndex Mengembalikan kedudukan kejadian terakhir subrentetan yang ditentukan dalam rentetan
func IndexFunc Mengembalikan kedudukan kejadian pertama aksara yang memenuhi syarat yang ditentukan dalam rentetan
func LastIndexFunc Mengembalikan kedudukan kejadian terakhir aksara yang memenuhi syarat yang ditentukan dalam rentetan
func IndexByte Mengembalikan kedudukan daripada kejadian pertama aksara yang ditentukan dalam rentetan
func LastIndexByte Mengembalikan kejadian terakhir aksara dalam rentetan Kedudukan di mana watak yang ditentukan muncul
func Count Mengembalikan bilangan kejadian subrentetan yang ditentukan dalam rentetan
func Replace Menggantikan subrentetan yang ditentukan dalam rentetan dengan rentetan lain
func ReplaceAll Gantikan semua subrentetan yang ditentukan dalam rentetan dengan rentetan lain
func Split Pisahkan rentetan kepada hirisan mengikut pembatas yang ditentukan
func SplitN Pisahkan rentetan mengikut pembatas yang ditentukan kepada kepingan, sehingga N kali
func SplitAfter Pisahkan rentetan kepada kepingan mengikut yang ditentukan akhiran, dan akhiran disertakan dalam setiap subrentetan
func SplitAfterN Pisahkan rentetan menjadi kepingan mengikut akhiran yang ditentukan , akhiran disertakan dalam setiap subrentetan, berpecah sehingga N kali
func Join Cantumkan kepingan rentetan menjadi satu rentetan mengikut pembatas yang ditentukan
pakej pengekodan 2.1.2
Pakej pengekodan menyediakan satu siri fungsi untuk pengekodan dan penyahkodan kaedah pengekodan aksara yang berbeza, seperti UTF-8, GB2312, dsb.
Fungsi nama fungsi
func Decode Menyahkod hirisan bait pengekodan yang ditentukan ke dalam kepingan rune dalam format UTF-8
func DecodeRune Menyahkod kepingan bait pengekodan yang ditentukan menjadi rune Tunggal
func DecodeLastRune Decode rune terakhir
func daripada kepingan bait pengekodan yang ditentukan
func Encode Tukar kepingan rune kepada kepingan bait pengekodan yang ditentukan
func RuneCount pengiraan Bilangan rune dalam rune slice
func Rune Decode potongan bait pengekodan yang ditentukan ke dalam rune slice
2.1.3 pakej unicode
unicode pakej menyediakan beberapa fungsi Digunakan untuk menentukan sama ada aksara ialah nombor, huruf, dsb.
Nama fungsi Fungsi
fungsi IsDigit Tentukan sama ada watak itu adalah nombor
fungsi IsLetter Tentukan sama ada aksara itu adalah huruffunc IsLower menentukan sama ada watak itu huruf kecil
func IsUpper menentukan sama ada watak itu huruf besar
func IsPunct menentukan sama ada watak itu adalah tanda baca
func IsGraphic menentukan sama ada aksara tersebut ialah huruf besar Untuk aksara grafik visual
2.2 Pengekodan contoh penukaran dalam golang
Berikut ialah beberapa contoh penukaran pengekodan dalam golang:
2.2 .1 Penukaran pengekodan UTF-8 kepada GB2312
Contoh 1: Gunakan pakej pengekodan golang untuk menukar antara pengekodan UTF-8 dan pengekodan GB2312.
package main import ( "fmt" "github.com/axgle/mahonia" ) func main() { str := "你好,世界!" enc := mahonia.NewEncoder("GB2312") newStr := enc.ConvertString(str) fmt.Println(newStr) }
2.2.2 Tukar pengekodan GB2312 kepada UTF-8
Contoh 2: Gunakan pakej pengekodan golang untuk menukar antara pengekodan GB2312 dan pengekodan UTF-8.
package main import ( "fmt" "github.com/axgle/mahonia" ) func main() { str := "你好,世界!" dec := mahonia.NewDecoder("GB2312") newStr := dec.ConvertString(str) fmt.Println(newStr) }
Dalam aplikasi praktikal, masalah penukaran pengekodan ialah masalah biasa. Artikel ini memperkenalkan penyelesaian penukaran pengekodan dalam golang, yang terutamanya menggunakan fungsi yang disediakan oleh pengekodan dan pakej unikod untuk mencapai penukaran antara pengekodan yang berbeza. Dengan mempelajari kandungan ini, kita seharusnya mempunyai pemahaman yang lebih mendalam dan keupayaan praktikal yang lebih tepat untuk operasi penukaran pengekodan dalam golang.
Atas ialah kandungan terperinci penukaran pengekodan golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!