现在的位置: 首页 > 软件测试 > 测试技术 > 正文

Python编码问题小结

2016年05月06日 测试技术 ⁄ 共 553字 ⁄ 字号 暂无评论 ⁄ 阅读 142 次

1. 字符串对象有两种格式:str和unicode,其中Unicode是标准,str则是具体的编码实现(utf-8,gbk等)

如:

a="你好"; #str

b=u"你好"; #unicode

 

2. encode是将unicode转换成其他格式编码decode是将其他格式编码转换为unicode,可将unicode看作是中间格式

str也可做encode,但会默认先做decode,使用默认的编码类型

如:

s.encode("utf-8") 等价于s.decode(defaultencoding).encode("utf-8")

 

3. 文件编码头作用,指定代码中文字编码格式,其中编码头和文件保存格式一致

如脚本头的这一行:

# -*- coding:utf-8 -*-

 

4. cmd乱码问题,cmd编码格式为gbk,所以要先decode为unicode,或encode为gbk

 

5. 读写文件

如果使用open方法打开文件,读取的是str,write时写入str,如果直接传递unicode,则会按照默认编码类型encode为str再写入文件

如果使用codecs的open方法,读取的是unicode,write时如果参数是unicode,则按照open中设定的编码encode,如果是str,则按照默认编码decode再encode

给我留言

留言无头像?