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)
	}
相关推荐
烛衔溟1 分钟前
C语言图论:最短路径算法
c语言·算法·图论·dijkstra·bellman-ford·最短路径
烛衔溟3 分钟前
C语言图论:最小生成树算法
c语言·算法·图论·最小生成树·kruskal·prim
Kiri霧5 分钟前
Go 结构体
java·开发语言·golang
沐知全栈开发8 分钟前
《jQuery 密码验证》
开发语言
-大头.10 分钟前
Java泛型实战:类型安全与高效开发
java·开发语言·安全
charlie11451419113 分钟前
现代C++工程实践:简单的IniParser4——实现ini_parser
开发语言·c++·笔记·学习·工程
捧 花13 分钟前
Go Web 中 WebSocket 原理与实战详解
网络·后端·websocket·网络协议·http·golang·web
Kiri霧15 分钟前
Go 切片表达式
java·服务器·golang
lsx20240616 分钟前
R 注释:全面指南与最佳实践
开发语言
jimy119 分钟前
ps aux|grep pid 和 ps -p pid 的区别
java·linux·开发语言