知识卡片
UTF8字符串边界
内容
Go 字符串底层是字节序列,默认用 UTF-8 表示文本;处理中文时不能把“字节数”等同于“字符数”。涉及截取、长度、反转时,要先确认操作单位是 byte、rune 还是用户可见字符。
参考来源
- 位置:《Go语言高级开发与实战》第1章《Go语言基础实战》(源文件:_epub-src/GoYu Yan Gao Ji Kai Fa Yu Shi Zhan_split_005.html)
- 结论依据:原文把字符串定义为字节连接,并说明 UTF-8 下字符可能占 1 到 4 个字节,因此能推出中文字符串处理要区分字节与字符。
- 原始内容:字符串实战技巧 1.2.1 字符串基础 字符串是一串固定长度的字符连接起来的字符序列。Go语言中字符串是由单个字节连接起来的。Go语言中字符串的字节使用UTF-8编码来表示Unicode文本。UTF-8是一种广泛使用的编码格式,是文本文件的标准编码,包括XML和JSON在内都使用该编码。 由于该编码占用字节长度的不定性,所以在Go语言中,字符串也可能根据需要占用1~4个字节,这与其他编程语言如C++、Java或者Pytho