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)
	}
相关推荐
§ꦿCFོ༉19 分钟前
嵌入式八股文—C语言入门学习(二)
c语言·学习·嵌入式·编程语言
联犀20 分钟前
联犀 Go SIMD 实战:视频转码从 16.5ms 到 5.46ms
开发语言·golang·音视频
octopus_c29 分钟前
STL 之 string:auto 与范围 for、常用接口、模拟实现与深浅拷贝
开发语言·c++·算法
Nerd(BUG版)38 分钟前
KMP学习day5--Kotlin Flow异步流基础
开发语言·学习·kotlin
J.YA1 小时前
String字符串[面试题]
java·开发语言
David猪大卫10 小时前
【Linux修炼】环境变量、进程地址空间
linux·c语言·经验分享·笔记·学习·ubuntu·centos
xiaoye-duck12 小时前
《C++ 项目:手写大模型接入 SDK》Gemini接口设计(上):初始化、全量响应实现和测试
开发语言·网络·c++·语言模型
nice_lcj52014 小时前
Java Lambda 表达式入门:怎么写、怎么用、常用方法有哪些
java·开发语言·后端·面试
码农小河6614 小时前
基于SSM+JSP+MySQL的在线医疗服务系统的设计与实现
java·开发语言·mysql
Zwawa18 小时前
两根线怎么挂住一堆设备:I2C 协议原理
c语言·单片机·嵌入式