使用Python处理字符时需要注意的几点
最近被python的字符串处理搞昏了头,又跑回去看了看字符编码的区别,现在记下来,以供后面自己查阅:
- Python默认使用Unicode编码
- Unicode使用两个字节用来表示一个字符
- 存储一般采用UTF-8格式存储
- UTF-8可变长度字符编码,英文数字均为1字节,汉字一般为3字节,更复杂的4~6个字节
ASCII可以看作是UTF-8的一个子集
在Linux下,Python解释器会根据编码文件中制定的编码格式读取文件内容,一般指定为UTF-8形式:
#!/usr/bin/python # -*- coding: utf-8 -*-
Windows下一般采用Unicode编码形式,Python解释器默认以Unicode模式读取字符串
由于Python处理字符串过程为Unicode编码形式,所以,在对文件及网络字符串流处理时,为了避免中文乱码形式,应该合理使用
decode()
与encode()
方法进行字符串的编码形式的转换.- 在Linux下编写含中文的
.py
的文件时,应注意编辑器的编码形式,若指定了读取模式为UTF-8,应保证文件的编码形式为UTF-8