Python试图在字节串和字符串之间以不为人所察觉的方式进行转化。在不同的转换中,在条件允许的情况下,Python会试图在字节串和unicode 字符串直接进行转换。
例如将字节串和unicode字节串连接到一起时。根据前面的介绍,不使用encoding就在不同类型之间进行转换是没有意义的。
所以Python依赖一个“默认编码”,该编码由sys.setdefaultencoding()
指定。
在大多数平台上,默认的是ASCII编码。但对于所有转换,使用这种编码几乎都是错误的。如果不手动指定编码就调用str()
或unicode()
,或是函数以字符串作为参数,但传递的是其他类型的参数时,都会使用这个默认编码。
原文:http://www.cnblogs.com/2wind/p/5674756.html