c字符串转go字符串

avatar
作者
筋斗云
阅读量:1

【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) 	}

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!