|
发表于 2020-2-29 11:10:48
|
显示全部楼层
本帖最后由 jackz007 于 2020-2-29 11:19 编辑
不知道你用的是什么操作系统,如果是 Windows ,那么,操作系统缺省的汉字编码应该是 GBK,也就是 CP936,就是说,在 Windows 下编辑产生的文本文件都是这种编码。如果你使用 Linux 操作系统,那么,这个系统中文字符采用 UTF-8 编码,编辑产生的文本文件编码一律是 UTF-8,UTF-8 编码的文件在 Windows 系统打开看到的是一堆乱码,同样,GBK 编码的文件在 Linux 下显示也是一堆乱码。
如果你在 Windows 平台上使用 Python,那么,缺省汉字编码是 GBK,就是说,如果 open() 不加 encoding 选项,那么,Python 就会按照 GBK 来解码和识别文本文件中的字符,同理,Linux 平台会按 UTF-8 编码来做同样的事情,但是,一旦文件编码与这个约定不符,那就必须用 open() 加 encoding 选项的方式,把文本文件实际的字符编码名称告诉 Python,否则,必然出现常见的字符编码错误。
每个汉字的确占用 2 个字节,但是,Python 内部采用的是 Unicode 编码,通过 len() 得到的是字符个数,而非字节长度。Unicode 编码不是以字节,而是以整个字符编码为基本单位的,所以,一个汉字就是一个字符。 |
|