Python文件中的编码
Python 默认脚本文件都是 ANSCII 编码的,当文件中有非 ANSCII 编码范围内的字符的时候就要使用"编码指示"来修正一个 module 的定义中,如果.py文件中包含中文字符(严格的说是含有非anscii字符),则需要在第一行或第二行指定编码声明:# -- coding=utf-8 -- 或者 #coding=utf-8,其他的编码如:gbk、gb2312也可以。或者也可以理解成外界有繁多的编码形式,如utf8、gbk等,而PC内部只有ANSCII编码。
Python中的编码与解码
经常遇见两个函数,其一:encode:表示编码,(将一个unicode对象转换为参数中编码格式的普通字符)代表从PC到外部;其二:decode:表示解码,(将普通字符串按照参数中的编码格式进行解析,然后生成对应的unicode对象)代表从外部读取到PC。
例如:
这里PC会首先对s自动的进行decode操作,由于没有指定解码方式,所以Python会使用sys.defaultencoding指明的方式进行解码(默认的是anscii编码),然后再进行编码操作,使用方式是gb2312。但是这样假若s的编码方式不是anscii编码,则会存在隐患,解决办法:
法一:明确指出s的编码方式:
这里为首先用utf-8进行解码,然后用gb2312进行编码
法二:更改默认的编码方式:
最后如果在实际开发中遇到非法字符,使用上述编码和解码方式会出现报错
这时候一种解决办法就是直接忽略非法字符: