Semasa saya menggunakan golang untuk pengekodan baru-baru ini, saya mendapati terdapat masalah dengan aksara bercelaru semasa mengikat rentetan. Setelah beberapa kali mencari dan mencuba, akhirnya saya berjaya menyelesaikan masalah tersebut. Di bawah ini saya akan kongsikan cara menyelesaikan masalah golang mengikat watak bercelaru.
Pertama, kami perlu mengesahkan format pengekodan rentetan yang kami gunakan. Format pengekodan biasa termasuk UTF-8, GB2312, GBK, dsb. Jika kita hanya menggunakan aksara ASCII, tidak kira kaedah pengekodan yang digunakan, tidak akan ada aksara yang bercelaru. Tetapi jika rentetan mengandungi aksara bukan ASCII, aksara bercelaru akan muncul.
Selepas mengesahkan format pengekodan rentetan, kami perlu memastikan format pengekodan yang betul digunakan semasa proses pengikatan golang.
Dalam golang, menggunakan pengekodan UTF-8 ialah situasi yang paling biasa. Oleh itu, apabila mengikat rentetan, kita boleh menggunakan kod berikut:
import "unsafe" func string2byte(s string) []byte { x := (*[2]uintptr)(unsafe.Pointer(&s)) h := [3]uintptr{x[0], x[1], x[1]} return *(*[]byte)(unsafe.Pointer(&h)) } s := string2byte("你好,世界!")
Kod di atas menukar rentetan menjadi kepingan bait. Dengan cara ini, rentetan boleh diproses secara normal semasa proses pengikatan.
Jika format pengekodan lalai golang tidak dapat memenuhi keperluan kami, kami boleh menentukan format pengekodan secara manual. Contohnya:
import "github.com/golang/text/encoding/simplifiedchinese" encoding := simplifiedchinese.GB18030.NewEncoder() output, _, _ := encoding.TransformString("你好,世界!") fmt.Println(output)
Kod di atas mengekod rentetan ke dalam format GB18030. Dengan cara ini, rentetan boleh diproses secara normal semasa proses pengikatan.
Ringkasan
Aksara bercelaru yang mengikat sering ditemui dalam golang, tetapi kami boleh menyelesaikan masalah ini dengan mudah dengan mengesahkan format pengekodan, menggunakan format pengekodan yang betul atau menentukan format pengekodan secara manual.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah bercelaru ikatan golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!