【1】问题:如何将带中文的char*转utf8
【2】问题分析:
默认的带中文的char*的编码格式是GBK,也就是中文是占两个字节,而数字、字母和其他字符是占一个字节,如“hao好”就是占5个字节
但是UTF-8,汉字是占3个字节,如“hao好”就是占6个字节
【3】解决办法
import ( "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/transform" "C" ) s:=C.CString("hao好") // 创建转换器 transformer := simplifiedchinese.GBK.NewDecoder() // 通过转换器转换编码 utf8Content, err := ioutil.ReadAll(transform.NewReader( bytes.NewReader([]byte(s)), transformer, )) if err != nil { panic(err) }