常见问题之Golang——在Go中返回的中文文本中包含菱形问号乱码

背景

日常我们开发时,会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。
同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。

开发环境

  • 系统:windows10
  • 语言:Golang
  • golang版本:1.18

内容

错误

在Go中返回的文本中包含菱形问号乱码

这是一个��测试������文本

造成原因:

byte转中文时出现多余的byte没有有效解析为中文导致

解决方案:

str := "这是一个测试文本"
str2 := []rune(str)
fmt.Println(string(str2[:])) // 进行处理后的结果
fmt.Println(str[:4]) // 会出现乱码的情况

参见内容

本文声明:

知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。