上一篇关于这个话题讲到了总结法则,这篇就来具体看一看吧!
第一,要将一串的字节翻译成人类理解的字位。首先必须要知道原始编码。
第二,在Unicode中字位非代码点,非字节,这个是非常重要的,因为在很多语言中,字符串操作库只对字节生效。在ASCII中没问题,因为字位与字节一一对应,Unicode中就不行了,这个例子是Python2的原生字符串,len()函数返回字符串中字节数即4,而不是字位或者代码点的1,此外如果我们查看字符串索引,得到点赞表情每个代码点的UTF-8字节,其实没有什么用,这些函数称为“Unicode不知所云/un'',因为他们操纵字节,却不知背后含义,你可能更希望用代码点来索引字符,要实现就要用到u指定符,使其成为可识别的Unicode字符串,这样len()和索引就是我们要的了,来看另一个例子:点赞结合如上色块,一个字位两个代码点,应该像这样,但我的终端实际无法正确渲染,使用len(s)得到8,因为两个代码点每个占四字节,当我们使用u(),得到代码点长度为2。