MySQL字符集编码终级指南基础篇

一,总论

要了解MySQL的字符编码,解决乱码问题,必须先了解字符编码。我们知道所谓信息,在计算机中不过是一串的位(bit:0 or 1),每8个bit组成了一个字节,而这些字节到底表示什么,取决于读到这些对象的上下文,1个字节序列,可以表示整数,字符串或者机器指令,当然也可以表示中文,日文,甚至上古文字。

即:

信息=位+上下文

而为了确定字符与二进制位的对应关系,就必须制定编码。

因为计算机是西方发明的,所以最早的也是我们最熟悉的编码ASCII主要包含的也就是26个基本拉丁字母(大小写)、阿拉伯数目字和英式标点符号等。但地球其它地方的人们也需要现代化,也要使用计算机,靠ASCII仅仅7个bit,128个字符位是不可能表示所有国家、地区的字符的。特别是像汉字这种非拼音字符,常用的也有几千个,1个字节都放下不。

def hex_to_text(hex_str): byte_str = bytes.fromhex(hex_str) print(hex_str+':'); <br> # 对于Latin1编码 print(byte_str.decode('latin1')) <br> # 对于GBK编码 print(byte_str.decode('gbk')) <br> # 对于UTF8编码 print(byte_str.decode('utf8')) <br> print('------------------'); <br> return 0 <br> hex_str = '41' hex_to_text(hex_str) <br> hex_str = 'e682a8e5a5bd' hex_to_text(hex_str) <br> hex_str = 'C1AACDA8' hex_to_text(hex_str)