Go 关于SOCKET客户端中文编码转换

用go编写Socket发现,从客户端输入中文时,服务器端无法正常显示。

image.png

需要对中文进行转码。

转码需要从go官方的golang.org/x/text包实现。可以通过如下命令安装

go get golang.org/x/text

或者通过github下载text包

转换函数

func GbToUtf8(s []byte) ([]byte, error) { 
    //reader := transform.NewReader(byte.NewReader(s), simplifiedchinese.GBK.NewEncoder())     
reader := transform.NewReader(bytes.NewReader(s),simplifiedchinese.GBK.NewDecoder())     
d, e := ioutil.ReadAll(reader)     
if e != nil {         
  return nil, e     
  }     
  return d, nil 
}

使用

v, err := GbToUtf8(buf[0:n])

结果:


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    小迈克阅读 8,162评论 1 3
  • 1. 分布式系统核心问题 参考书籍:《区块链原理、设计与应用》 一致性问题例子:两个不同的电影院买同一种电影票,如...
    molscar阅读 4,463评论 0 0
  • 原文作者:Albert陈凯原文链接:https://www.jianshu.com/p/9895e6434819 ...
    Golang语言社区阅读 9,161评论 0 58
  • 在简书中,发现不少我喜欢的App写手作家们都分享了自己获取各种优质App的渠道,可谓收获良多。例如简书作者周良粥凉...
    魔术师阅读 9,675评论 6 88
  • 意识昏昏沉沉。 探员睁开眼睛,费力地去辨识眼前的一切。在他的脚下铺开的是一大块陈旧的地毯,在电视机的微光下看不出来...
    lostdays阅读 4,104评论 6 14