用go編寫Socket發(fā)現(xiàn),從客戶端輸入中文時(shí),服務(wù)器端無(wú)法正常顯示出現(xiàn)亂碼。
我們可以對(duì)中文進(jìn)行轉(zhuǎn)碼來(lái)解決。
轉(zhuǎn)碼可以使用go官方的golang.org/x/text包實(shí)現(xiàn)。
安裝命令如下:
go get golang.org/x/text
轉(zhuǎn)換編碼格式的函數(shù)如下:
func GbToUtf8(s []byte) ([]byte, error) { //reader := transform.NewReader(byte.NewReader(s), simplifiedchinese.GBK.NewEncoder()) reader := transform.NewReader(bytes.NewReader(s),simplifiedchinese.GBK.NewDecoder()) d, e := ioutil.ReadAll(reader) if e != nil { return nil, e } return d, nil }
使用轉(zhuǎn)換編碼格式函數(shù):
v, err := GbToUtf8(buf[0:n])