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语言·开发语言·c++
ruxingli7 分钟前
GoLang channel管道
开发语言·后端·golang
Risehuxyc8 分钟前
PHP 的缓存机制
开发语言·缓存·php
sinat_255487819 分钟前
JSON·学习笔记
java·开发语言·笔记·算法
Yupureki17 分钟前
《算法竞赛从入门到国奖》算法基础:动态规划-基础线性dp
c语言·开发语言·算法·动态规划
_DCG_17 分钟前
go第一个工程安装过程与问题汇总
开发语言·后端·golang
lsx20240621 分钟前
Bootstrap 附加导航
开发语言
白杆杆红伞伞25 分钟前
R_常用函数
开发语言·r语言
工程师老罗41 分钟前
LVGL文本显示问题,编码问题
java·开发语言
痴心阿文41 分钟前
npx create-next-app@latest从Vue迁移的最佳实践
开发语言·前端·javascript