python程序采用unicode编码、英文字符和中文字符_python 字符编码与解码——unicode、str和中文:UnicodeDecodeError: 'ascii' codec can't...

摘要:在进行Python脚本的编写时,如果我们用python来处理网页数据或者进行与中文字符有关的处理工作,经常出现这样的出错信息:SyntaxError: Non-ASCII character '\xe6' in file ./filename.py on line 3, but no encoding declared。本文主要讲解python中与unicode和中文、特殊字符编码有关的问题。字符编码和解码需要遵循什么规律?

前言:

如果密码领域一样,从明文到密码是加密,从密码到明文是解密。在python中,编码:unicode-->str;解码str-->unicode.既然是编码,那么就和密码领域一样,编码和解码自然涉及到编码/解码方案(对应加密或者解密算法),unicode相当于明文。在python中,编码函数是encode(),解码函数是decode()。需要注意的一点是,如果我们调用str.encode(),这里涉及到一个隐士的类型转化,会现将str转化成unicode,才能进行编码,这也是不太容易理解的地方。所以,str.encode()实际上就等价于str.decode(sys.defaultencoding).encode().而sys.defaultencoding一般是ascii,它是不能用来编码中文字符的。

在阅读本文之间,如果你对字符编码不是很熟悉,有必要先了解以下字符编码。可以参考:字符编码简介。

1.一个中文字符编码问题

一个python脚本如下:

#!/usr/bin/python

string='我的'

printstrin

你可能感兴趣的:(英文字符和中文字符)