当你在python中使用中文时,你一定见过下面的错误SyntaxError: Non-ASCII character '\xe6' in file ./filename.py on line 3, but no encoding declared。
你一定听过什么是编码
比如,ascii,utf-8,gbk……。这些总的来说就是如何把一个字或者字母编码成计算机能认识的0和1
比如我举“你好,python"这句话:
'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8cpython'(utf8)
'\xc4\xe3\xba\xc3\xa3\xacpython'(gbk)
至于ascii,不支持中文,宁打的化,就是错误:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
你必须要知道的string 和 unicode 区别
string object是由characters组成的sequence,而unicode object是Unicode code units组成的sequence。
unicode就是 Unicode code units组成的序列,比如还是上面那句话:
u'\u4f60\u597d\uff0cpython'
而至于string这货,character是有多种编码方式的,比如单字节的ASCII,双字节的GB2312等等,再比如UTF-8。要想解读string,必需知道string里的character是用哪种编码方式,然后才能进行因为编码。
关于这些你要记住的