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)
	}
相关推荐
消失的旧时光-194310 分钟前
C++ 拷贝构造、拷贝赋值、移动构造、移动赋值 —— 四大对象语义完全梳理
开发语言·c++
送秋三十五12 分钟前
一次大文件处理性能优化实录————Java 优化过程
java·开发语言·性能优化
清云随笔21 分钟前
Golang基础
golang
lcj251122 分钟前
深入理解指针(4):qsort 函数 & 通过冒泡排序实现
c语言·数据结构·算法
Sylvia-girl23 分钟前
线程池~~
java·开发语言
fie888924 分钟前
基于MATLAB的转子动力学建模与仿真实现(含碰摩、不平衡激励)
开发语言·算法·matlab
lly20240627 分钟前
C# 变量作用域
开发语言
时艰.30 分钟前
java性能调优 — 高并发缓存一致性
java·开发语言·缓存
MSTcheng.32 分钟前
【C++】C++智能指针
开发语言·c++·智能指针
无小道33 分钟前
Qt——网络编程
开发语言·qt