HR's Blog

Swimming 🏊 in the sea🌊of code!

0%

UTF-8

.

UTF-8可以与之前的ASCII码兼容,但是遇到比7bits更大的编码UTF-8是怎么处理的?

例如符号 ½,在UTF-8中的编码是101111101,使用了8bits这时候在UTF-8中就需要两个字节来存储。

当需要更高位的时候,则可以用下面的表格来推算他。


也就是当需要两个字节的时候,前面为两个11加一个零。需要三位的时候则1110。而子位前面都以10开头,剩下的位用来存储数据。

对于n字节的符号(n > 1),第一个字节的前n位都设为1,第n + 1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码。

1
2
3
4
5
6
7
let char = “\u{00bd}”
for in in char.utf8 {
print(i)
}

//194 189
//11000010 和 101111101和上图是对应的。