起首关于python的体系编码花样和输入输出花样,我们怎样检察呢?
>>> import sys >>> sys.getdefaultencoding()# 体系默许编码花样 'UTF-8' >>> sys.stdout.encoding# 输入输出花样 'US-ASCII'
这类情况下示意,当前的敕令行的输入输出编码是ascii,所以须要手动改成设置环境变量LANG为utf-8:
export LANG="en_US.UTF-8"
假如是在ubuntu环境下,能够将上面这行敕令到场~/.bashrc中一劳永逸处理题目,到场后运转下面敕令使其见效或许重启见效。
source ~/.bashrc
或许另一种要领是,只针对python设定响应编码(同上,敕令行运转或许到场bashrc文件):
PYTHONIOENCODING='utf_8' export PYTHONIOENCODING
gbk编码示例图:
ascii编码表图部份:
在日常平凡代码编程时别忘了给顶行加上:
# -*- coding: utf-8 -*-
设置python编码能够运用敕令行,然则仅在本会话中见效
>>>sys.getdefaultencoding()检察当前编码(若报错,先实行>>>import sys >>>reload(sys)); >>>sys.setdefaultencoding('utf8')设置编码
在程序代码中从新载入SYS模块并设置uft-8也是可行的,然则在pycharm中会提醒毛病
import sys reload(sys) sys.setdefaultencoding('utf8') 重启Python诠释器,发明编码已被设置为utf8; 这是因为体系在Python启动的时刻,自行挪用该文件,设置体系的默许编码,而不须要每次都手动加上处理代码,属于一劳永逸的处理要领。
在日常平凡开辟时,我们都晓得应用Decode和Encode举行转码操纵。
Decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),示意将gb2312编码的字符串str1转换成unicode编码。 Encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),示意将unicode编码的字符串str2转换成gb2312编码。
在最新的python 3版本中,字符串的范例是str, 在内存中都是以Unicode示意,一个字符对应若干个字节;
假如要在收集上传输,或许保存到磁盘上,就须要把str变成以字节为单元的bytes。
以Unicode示意的str经由过程encode()要领能够编码为指定的bytes,比方:
>>> 'ABC'.encode('ascii') b'ABC' >>> '中文'.encode('utf-8') b'\xe4\xb8\xad\xe6\x96\x87' >>> '中文'.encode('ascii') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
在操纵字符串时,我们常常碰到str和bytes的相互转换。为了防止乱码题目,应该一直对峙运用UTF-8编码对str和bytes举行转换。
友情链接【UTF-8编码转换东西】
【python3视频教程】
编码花样最初只要几种,因为计算机的提高,很多国度或构造的运用,编码花样也变得越来越多,然则国际通用的依然是UTF-8,所以应该有个优越的编程习气,多运用UTF-8编码花样。在碰到编码题目时,也只管坚持编码花样的一致。
以上就是Python的编码花样变动题目的细致内容,更多请关注ki4网别的相干文章!