c字符串转go字符串

打印 上一主题 下一主题

主题 532|帖子 532|积分 1596

【1】问题:如何将带中文的char*转utf8
【2】问题分析:
默认的带中文的char*的编码格式是GBK,也就是中文是占两个字节,而数字、字母和其他字符是占一个字节,如“hao好”就是占5个字节
但是UTF-8,汉字是占3个字节,如“hao好”就是占6个字节
【3】解决办法
  1. import (
  2.        
  3.         "golang.org/x/text/encoding/simplifiedchinese"
  4.         "golang.org/x/text/transform"
  5.     "C"
  6. )
  7.     s:=C.CString("hao好")
  8.     // 创建转换器
  9.         transformer := simplifiedchinese.GBK.NewDecoder()
  10.         // 通过转换器转换编码
  11.         utf8Content, err := ioutil.ReadAll(transform.NewReader(
  12.                 bytes.NewReader([]byte(s)),
  13.                 transformer,
  14.         ))
  15.         if err != nil {
  16.                 panic(err)
  17.         }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

干翻全岛蛙蛙

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表