Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了TODO:字节的那点事Go篇大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

TODO:字节的那点事Go篇

TODO:字节的那点事Go篇s.width=650;" class="alignnone size-full wp-image-996" src="http://img.code.cc/vcimg/static/loading.png" width="640" height="530" style="border:0px;vertical-align:middle;margin:0px auto;height:auto;" src="http://www.todosomeone.com/wp-content/uploads/2016/12/12800003df376b8ed9ca-1.jpg">

(本文go version go1.7.3 darwin/amd64)

在Golang中String底层是由byte数组组成的。

fmt.Println(len(“dsd好”))

输出的长度是6

fmt.Println(len(String(rune(‘好’))))

输出的长度是3

fmt.Println(len([]rune(“好的2s”)))

输出的长度是4

所以用String存储unicode的话,如果有中文(中文是由3个字节组成

),按下标是访问不到的,因为你只能得到一个byte。 要想访问中文的话,还是要用rune切片,这样就能按下标访问。

UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到4个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。

为什么要做UTF-8转码?很大语言直接支持UTF-8,部分语言存储字符串到内存时直接使用 UTF-8编码。UTF-8是一个通用解决方案,一直有人维护。例如Golang语言就直接支持UTF-8。

接下来我们来看看Golang是怎么处理UTF-8转码,如图

TODO:字节的那点事Go篇s.width=650;" class="alignnone size-full wp-image-997" src="http://img.code.cc/vcimg/static/loading.png" width="640" height="813" style="border:0px;vertical-align:middle;margin:0px auto;height:auto;" src="http://www.todosomeone.com/wp-content/uploads/2016/12/127c00010479249758e0-1.jpg">

输出

TODO:字节的那点事Go篇s.width=650;" class="alignnone size-full wp-image-998" src="http://img.code.cc/vcimg/static/loading.png" width="384" height="200" style="border:0px;vertical-align:middle;margin:0px auto;height:auto;" src="http://www.todosomeone.com/wp-content/uploads/2016/12/12820000ba444d258a72-1.jpg">

为什么fmt.Println(StrToByte(“��”))输出[11]呢?由先了解到byte到范围是0~256,22283对256取余为11。

在Golang中就是这样使用UTF-8,你是否注意到其中到使用细节呢。


wxgzh:ludong86

TODO:字节的那点事Go篇s.width=650;" class="aligncenter size-full wp-image-845" src="http://img.code.cc/vcimg/static/loading.png" width="258" height="258" style="border:0px;vertical-align:middle;margin:0px auto;height:auto;text-align:center;" src="http://www.todosomeone.com/wp-content/uploads/2016/11/qrcode_for_gh_6bb1f39ae99c_258-1.jpg">

大佬总结

以上是大佬教程为你收集整理的TODO:字节的那点事Go篇全部内容,希望文章能够帮你解决TODO:字节的那点事Go篇所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。