mirror of
https://github.com/chai2010/advanced-go-programming-book.git
synced 2025-05-24 12:32:21 +00:00
ch1-03: utf8, 向前改为向后, 表示已经处理过的字符
This commit is contained in:
parent
c36e10a31c
commit
f579a9f087
@ -212,7 +212,7 @@ fmt.Println("\xe7\x95\x8c") // 打印: 界
|
||||
|
||||
Go语言的字符串中可以存放任意的二进制字节序列,而且即使是UTF8字符序列也可能会遇到坏的编码。如果遇到一个错误的UTF8编码输入,将生成一个特别的Unicode字符‘\uFFFD’,这个字符在不同的软件中的显示效果可能不太一样,在印刷中这个符号通常是一个黑色六角形或钻石形状,里面包含一个白色的问号‘<E58FB7>’。
|
||||
|
||||
下面的字符串中,我们故意损坏了第一字符的第二和第三字节,因此第一字符将会打印为“<EFBFBD>”,第二和第三字节则被忽略,后面的“abc”依然可以正常解码打印(错误编码不会向前扩散是UTF8编码的优秀特性之一)。
|
||||
下面的字符串中,我们故意损坏了第一字符的第二和第三字节,因此第一字符将会打印为“<EFBFBD>”,第二和第三字节则被忽略,后面的“abc”依然可以正常解码打印(错误编码不会向后扩散是UTF8编码的优秀特性之一)。
|
||||
|
||||
```go
|
||||
fmt.Println("\xe4\x00\x00\xe7\x95\x8cabc") // <20>界abc
|
||||
|
Loading…
x
Reference in New Issue
Block a user