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)
	}
相关推荐
老王熬夜敲代码44 分钟前
C++万能类:any
开发语言·c++·笔记
梦帮科技1 小时前
第三十四篇:开源社区运营:GitHub Stars增长策略
开发语言·前端·爬虫·python·docker·架构·html
智者知已应修善业1 小时前
【数组删除重复数据灵活算法可修改保留重复数量】2024-3-4
c语言·c++·经验分享·笔记·算法
你怎么知道我是队长1 小时前
C语言---字符串
java·c语言·算法
你怎么知道我是队长2 小时前
C语言---指针
c语言·数据结构·算法
小成202303202652 小时前
Linux高级
linux·开发语言
m0_502724952 小时前
QT - 系统托盘
开发语言·qt
还不秃顶的计科生2 小时前
python循环中的enumerate用法
开发语言·python
资生算法程序员_畅想家_剑魔2 小时前
Java常见技术分享-26-事务安全-锁机制-常见的锁实现
java·开发语言
坚持学习前端日记2 小时前
桌面端与移动端JS桥技术对比及跨平台实现
开发语言·javascript·harmonyos