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)
	}
相关推荐
Jonathan Star26 分钟前
JavaScript 中,原型链的**最顶端(终极原型)只有一个——`Object.prototype`
开发语言·javascript·原型模式
普通网友32 分钟前
C++中的组合模式
开发语言·c++·算法
q***615032 分钟前
PHP进阶-在Ubuntu上搭建LAMP环境教程
开发语言·ubuntu·php
Dneccc35 分钟前
Qt5配置MSVC2017
开发语言·qt
江公望36 分钟前
Qt QByteArray类型,10分钟讲清楚
开发语言·c++·qt
小灰灰搞电子37 分钟前
Qt Sensors 传感器框架详解
开发语言·qt
LNN202241 分钟前
Qt 5.8 中的 Qt Test:轻松实现自动化测试
开发语言·qt
2501_9411114641 分钟前
C++中的组合模式变体
开发语言·c++·算法
啵啵鱼爱吃小猫咪1 小时前
机器人具身智能汇总
开发语言
想唱rap1 小时前
Linux下进程的状态和优先级
linux·运维·服务器·开发语言·数据结构·算法