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)
	}
相关推荐
博界IT精灵14 小时前
C语言中的数据类型及其转换
c语言·开发语言
软件黑马王子14 小时前
13.缓存池优化:对象上限配置
开发语言·前端框架·c#
李迟14 小时前
Golang实践录:工程框架实践:搭建工程模板
开发语言·后端·golang
纪伊路上盛名在14 小时前
Kabsch算法的Julia实现
开发语言·算法·julia·序列分析·蛋白质·rmsd
玖玥拾14 小时前
Lua 基础语法(三) 元表 metatable、元方法、模拟面向对象
开发语言·unity·lua
维天说14 小时前
Agent会听人话,反而更难管
java·开发语言·人工智能
水饺编程14 小时前
编程数学:三角函数基础01,直角三角函数
c语言·c++·windows·visual studio
LuminousCPP14 小时前
数据结构-排序(一):基础排序算法横向对比|冒泡、插入、希尔、堆与双向选择,详解二分 / Knuth 增量
c语言·数据结构·笔记·算法·排序算法
初願致夕霞14 小时前
C/C++传统程序内存分布(代码实测)
java·c语言·c++
会飞的拖把14 小时前
Python 面向对象编程详解:从类与对象到动态属性方法
开发语言·python