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)
	}
相关推荐
刺客-Andy12 小时前
js高频面试题 50道及答案
开发语言·javascript·ecmascript
夏幻灵12 小时前
指针在 C++ 中最核心、最实用的两个作用:“避免大数据的复制” 和 “共享”。
开发语言·c++
ghie909012 小时前
MATLAB 高速公路裂缝检测
开发语言·matlab
Yyyyy123jsjs13 小时前
Python 如何做量化交易?从行情获取开始
开发语言·python
violet-lz13 小时前
C++ 内存分区详解
开发语言·jvm·c++
周小码13 小时前
Spacedrive:用Rust构建的虚拟分布式文件系统
开发语言·后端·rust
聪明努力的积极向上13 小时前
【设计】分批查询数据通用方法(基于接口 + 泛型 + 定点复制)
开发语言·设计模式·c#
灰色人生qwer13 小时前
VS Code 配置Java环境
java·开发语言
yyy(十一月限定版)13 小时前
C语言——排序算法
c语言·开发语言·排序算法
tgethe13 小时前
Java 链表(LinkedList)
java·开发语言·链表