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)
	}
相关推荐
代码中介商5 小时前
C++左值与右值:核心判断法则详解
开发语言·c++
JAVA9655 小时前
JAVA面试-并发篇 05-并发包AQS队列实现原理是什么
java·开发语言·面试
玖玥拾5 小时前
C/C++ 基础笔记(七)
c语言·c++
Halo_tjn5 小时前
反射与设计模式1
java·开发语言·算法
珊瑚里的鱼6 小时前
手撕单例模式中的饿汉模式和懒汉模式,懒汉模式还要再多加一个C++11版本的
开发语言·c++·单例模式
_不会dp不改名_6 小时前
python-opencv环境搭建
开发语言·python·opencv
HappyAcmen6 小时前
9.复盘API全套流程
开发语言·python
charlie1145141916 小时前
通用GUI编程技术——图形渲染实战(四十五)——D3D12资源与堆管理:从上传到驻留
开发语言·3d·图形渲染·win32
不会C语言的男孩6 小时前
C++ Primer 第12章:动态内存
开发语言·c++
踏着七彩祥云的小丑7 小时前
Go学习第1天:入门
开发语言·学习·golang·go