什么是 Unicode
Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布
什么是 UTF-8 编码
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
中文是如何进行 UTF-8 编码的
从上面可以得知, 包括中文在 unicode
编码集也会有对应的二进制码(目前都是以 16 进制表示)
比如 你好
对应的 unicode
为 \u4f60\u597d
去掉前面的 \u
转义符号剩下 4f60
597d
, 编码规则如下
Unicode | bit数 | UTF-8 |
---|---|---|
0000 ~ 007F | 0~7 | 0XXX XXXX |
0080 ~ 07FF | 8~11 | 110X XXXX 10XX XXXX |
0800 ~ FFFF | 12~16 | 1110XXXX 10XX XXXX 10XX XXXX |
1 0000 ~ 1F FFFF | 12~16 | 11110XXX 10XX XXXX 10XX XXXX 10XX XXXX |
编码以此类推
你好
对应的 Unicode
编码为 4f60
597d
范围在 0800 ~ FFFF
对应的 UTF-8
格式为 1110 XXXX 10XX XXXX 10XX XXXX
, 4f60
对应的二进制编码为 01001111 01100000
把 X 按顺序填进去得到 11100100 10111101 10100000
再转为 16 进制得到 E4BDA0
python 中字符串前面加个 u, 如: u’你好’, 表示的是 你好
的 Unicode
编码