分析'hello,北京欢迎您'11个符号的unicode码值(10,16进制形式表示), utf-8编码的码值(16进制表示形式)。
unicode码值查看,方法1:
安装editplus,输入11个符号,保存时选择unicode big endian,工具栏选择Hx,
FEFF开头为标志,一个符号(包括汉字,英文字母)对应两个字节的编码,16进制形式为:
0068 0065 006C 006C 006F 002C 5317 4EAC 6B22 8FCE 60A8
把16进制数转为10进制,对应的10进制形式为:
104 101 108 108 111 44 21271 20140 27426 36814 24744
unicode码值查看,方法2:
16进制形式可以用以下程序输出:
for ch in "hello,北京欢迎您":
print(hex(ord(ch)) , end=" ")
10进制形式用以下程序跑出:
for ch in "hello,北京欢迎您":
print(ord(ch) , end=" ")
utf-8编码查看,方法1:
该编码是变长编码,安装editplus,输入11个符号,保存时编码选择utf-8,工具栏选择Hx,
英文字母、数字、标点、控制符号为1个字节的编码(同ascii编码,字节的最高位为0是标志);
一个汉字的utf-8编码占3个字节。开头字节的高位是1,且连续1的个数n标志着从该字节起的n个字节构成一个汉字或其它的语言文字的编码。
如e5 8c 97 为汉字“北”的utf-8编码的16进制形式。
e58c97--->1110 0101 1000 1100 1001 0111 ,其与“北”的unicode编码5317(01010011 00010111)可以互相转换,参考转换规则。
https://blog.csdn.net/airjordon/article/details/82699223blog.csdn.net可以查到,“北京欢迎您”的utf-8编码的16进制形式为:(一个汉字的编码占3个字节)
E5 8C 97 E4 BA AC E6 AC A2 E8 BF 8E E6 82 A8
utf-8编码查看,方法2:
英文字符(含标点符号)的utf-8编码占1个字节,同ascii编码。
Python3只有unicode编码的字符串,才有encode方法,功能是将unicode编码转换为其他的编码形式。