TODO:字节的那点事Go篇
来源:互联网 发布:网络推广课程 编辑:程序博客网 时间:2024/04/30 17:09
TODO:字节的那点事Go篇
(本文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转码,如图
输出:
为什么fmt.Println(StrToByte(“國”))输出[11]呢?由先了解到byte到范围是0~256,22283对256取余为11。
在Golang中就是这样使用UTF-8,你是否注意到其中到使用细节呢。
wxgzh:ludong86
- TODO:字节的那点事Go篇
- TODO:字节序的一些理解
- 男的那点事
- 质数的那点事
- printk的那点事
- 拓展的那点事
- 装修的那点事
- 邮件的那点事
- 指针的那点事
- 工作的那点事
- 中秋的那点事
- Ubuntu的那点事
- 程序员的那点事
- typedef的那点事
- 程序员的那点事
- NSObject的那点事
- jdk的那点事
- NSObject的那点事
- UNIX系统编程复习笔记 一
- 商人小鑫
- 大学感悟【八】
- xutils
- eclipse Mac安装了tomcat7.0,启动后在window-> preferences选项中找不到tomcat项
- TODO:字节的那点事Go篇
- Android点击展示/收起更多详情+动画效果 Value
- 《编程之美》-- 让CPU占用率听你指挥
- IO多路转接
- 第9章-数据融合技术
- 如何禁止qq等程序运行
- 关于List的contains方法问题
- 17 :多台物理机间的容器连接
- Android studio集成阿里百川HotFix