干翻全岛蛙蛙 发表于 2024-7-19 21:34:48

c字符串转go字符串

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: c字符串转go字符串