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)
	}
相关推荐
222you4 分钟前
SpringIOC的注解开发
java·开发语言
William_cl5 分钟前
【CSDN 专栏】C# ASP.NET Razor 视图引擎实战:.cshtml 从入门到避坑(图解 + 案例)
开发语言·c#·asp.net
charlie1145141918 分钟前
深入理解CC++的编译与链接技术9:动态库细节
c语言·开发语言·c++·学习·动态库
席之郎小果冻8 分钟前
【03】【创建型】【聊一聊,单例模式】
开发语言·javascript·单例模式
god0013 分钟前
Selenium等待判断元素页面加载完成
java·开发语言
isyoungboy15 分钟前
c++使用win新api替代DirectShow驱动uvc摄像头,可改c#驱动
开发语言·c++·c#
teamlet17 分钟前
多域名TLS 证书的自动签名和续期
golang·https·letsencrypt·acmev2
Dxy123931021617 分钟前
python如何去掉字符串中最后一个字符
开发语言·python
古城小栈24 分钟前
Go+Rust混合编程:高性能系统开发的最优解之一
golang·rust
云和数据.ChenGuang29 分钟前
`post_max_size`、`max_execution_time`、`max_input_time` 是 **PHP 核心配置参数**
开发语言·mysql·php·zabbix·mariadb