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)
	}
相关推荐
TheITSea12 小时前
Java中的Optional:从入门到精通
java·开发语言
博语小屋12 小时前
转义字符.
c语言·c++
糕......12 小时前
Java异常处理完全指南:从概念到自定义异常
java·开发语言·网络·学习
御水流红叶12 小时前
第七届金盾杯(第一次比赛)wp
开发语言·python
Lhan.zzZ12 小时前
Qt跨线程网络通信:QSocketNotifier警告及解决
开发语言·c++·qt
superman超哥12 小时前
仓颉性能优化秘籍:内联函数的优化策略与深度实践
开发语言·后端·性能优化·内联函数·仓颉编程语言·仓颉·仓颉语言
Wang's Blog12 小时前
Lua: 元表机制实现运算符重载与自定义数据类型
开发语言·lua
我找到地球的支点啦13 小时前
Matlab系列(006) 一利用matlab保存txt文件和读取txt文件
开发语言·算法·matlab
-森屿安年-13 小时前
STL中 Map 和 Set 的模拟实现
开发语言·c++
阿蒙Amon13 小时前
C#每日面试题-接口和抽象类的区别
开发语言·c#