教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 Golang遍历字符串输出中文乱码的解决办法

Golang遍历字符串输出中文乱码的解决办法

发布时间:2022-03-19   编辑:jiaochengji.com
教程集为您提供Golang遍历字符串输出中文乱码的解决办法等资源,欢迎您收藏本站,我们将为您提供最新的Golang遍历字符串输出中文乱码的解决办法资源

      Golang输出字符串有两种方式,一种是传统方式输出,另一种是用for...range输出(类似字典键值对的方式)。但是Golang中所有的字符都是以utf-8编码存储的,对于中文字符来说,一个中文字符占3个字节。用传统方式输出的话会出现中文乱码,原因是传统方式是以字节的方式进行遍历的,而中文字符占了3个字节。解决的办法是使用切片[]rune(str)转换一下;而用for...range不会出现乱码。

我们直接看代码:

<pre class="has"><code class="language-Go">func traverseStrings() { //方式一:传统方法 var str string = "hello,world!北京" str_cpy := []rune(str) //就是把str转成切片[]rune(str),可以解决字符串的中文乱码(中文字符是占3个字节) for i := 0; i < len(str_cpy); i { fmt.Printf("%c\n", str_cpy[i]) } //方式二:for..range str1 := "ABCDEFG上海" //用这种方式不会出现乱码 for index, val := range str1 { fmt.Printf("index = %d, val = %c \n", index, val) } }</code></pre>

用传统方式输出结果为:

用for...range方式输出结果为:

从图中我们也可以看出“上”占了3个字节。

到此这篇关于“Golang遍历字符串输出中文乱码的解决办法”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
Golang遍历字符串输出中文乱码的解决办法
php截取中文字符串乱码如何解决呢
PHP如何使用strrev()函数反转字符串?(代码示例)
php中文字符串截取方法
php分割GBK中文乱码的解决方法
js未结束的字符串常量异常解决方法
php substr中文乱码解决办法
mysql中utf-8编码数据库转换成GBK编码的问题
JavaScript算法题之–查找不同顺序排列的字符串
PHP URL传递中文乱码问题解决办法

[关闭]
~ ~