计算机编码原理 以Python为例的解析

美国人发明了uscii,只包括数字字符和一些字符。于是中国人就制定了GB2312。后来为了统一世界的语言制定了UTF-8。
在Pyhton中一个方法是ord():将字符转换为十进制码,这个十进制码就代表编码表中字符的编码, A的编码为65。
>>> '\u4e2d\u6587'
'中文'
在python中输入以前编码会输出中文,\u4e2d\u6587其实代表十六进制,十进制为20013 25991,这些数字又可以有不同的字节数,随编码格式的不同变化,例如utf-8为三个字节(除偏僻中文),gbk为两个字节。比如用utf8,20013转换为字节流就为"\xe4\xb8\ad",用gbk 转换为"\xd6\xd0",但不管如何转换最终都是十进制20013 十六进制\u4e2d。
具体20013是如何转换为\xe4\xb8\ad 的编码规则为
   Unicode符号范围                   |   UTF-8编码方式

     (十六进制) (十进制)     |   (二进制)
  —————————————————————————————————-
   0000 0000-0000 007F (0-127) |    0xxxxxxx
   0000 0080-0000 07FF (128-2047) |    110xxxxx 10xxxxxx
   0000 0800-0000 FFFF (2048-65535) |   1110xxxx 10xxxxxx 10xxxxxx
   0001 0000-0010 FFFF (65536-1114111) |    11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

参考:https://www.cnblogs.com/leesf456/p/5317574.html

猜你喜欢

转载自blog.csdn.net/wzjssssssssss/article/details/79088810