计算机只能处理数字,当遇到文本时,需要先将文本转变成数字,再被计算机处理。最早的计算机采用8个比特(bit)表示一个字节(byte),所以一个字节可以表示的最大整数为255(11111111=十进制255)。0-255可以表示大小写字母,数字,一些字符。这个编码表被称为ASCII编码。比如大写的A为65,小写的z为122。
一个汉字至少需要两个字节表示,在表示时还不能和ACSII编码重合,所以中国设计出了GB2312编码。类似的外国文字也会遇到此类问题,因为ASCII编码是国际编码,所以最后推出了Unicode编码将所以语言联合起来的编码,于是解决了编码重合问题。
不过python语言的出现要早于Unicode编码,所以最好的python语言只支持ASCII。后来python添加了Unicode支持,在用unicode表示时:
单行 u'...'
多行 u'''...'''
raw+多行 ur'''...'''
如果中文内容的py文件,显示UnicodeDecodeError,是因为py文件保存时的编码有问题,解决方法,在py文件开头
# -*- coding: utf-8 -*-
然后保存时需要设置类型为UTF-8
多行打印中文内容时,加u或者不加u都能成功。(个人经验)