c字符串转go字符串

【1】问题:如何将带中文的char*转utf8

【2】问题分析:

默认的带中文的char*的编码格式是GBK,也就是中文是占两个字节,而数字、字母和其他字符是占一个字节,如"hao好"就是占5个字节

但是UTF-8,汉字是占3个字节,如"hao好"就是占6个字节

【3】解决办法

Go 复制代码
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)
	}
相关推荐
haluhalu.几秒前
初识 Protobuf:微服务跨语言通信的一份契约
java·c语言·开发语言·c++·python
孙启超12 分钟前
【AI开发之Rust】第 12 课:并发模型与同步原语
开发语言·后端·rust
临期冰淇淋1 小时前
Unisoc 展锐平台Camera摄像头分辨率适配
linux·c语言·驱动开发
敲代码的瓦龙1 小时前
Jetpack?DataBinding!!!
android·java·开发语言·mysql·android-studio
爱奥尼欧1 小时前
【C++】map、set 的底层是什么?红黑树五条性质、插入旋转到模拟实现
开发语言·数据结构·c++
指尖的爷1 小时前
ARM 架构 Ubuntu(RK3588/aarch64)go开发环境安装手册
ubuntu·架构·golang
名字还没想好☜1 小时前
Go 实现指数退避重试:context 取消、抖动 jitter 与什么时候别重试
后端·golang·go
山下梅子酒2251 小时前
洛谷-入门-B2054
c语言