python的编码问题

来源:互联网 发布:《知之深 爱之切》txt 编辑:程序博客网 时间:2024/05/21 15:58
初学者对编码问题一定非常头痛,我开始时也是这样,所以下、记录一下到目前我对python编码问题的理解。
首先,python的默认编码是“ascii” 这是表示英文和数字的常用规范编码。也就是说这个编码方式下只能表示英文,也就是说一旦出现中文,就会出错,无法识别。
   先说一下python的文件编码大致处理流程,写完代码后,系统会按默认的编码(即ASCII)将你的代码进行编译,编译成计算机能看懂的语言的,然后再打印输出时,计算机才能识别并进行运算,打印出正确的结果。


    这就是为什么python在出现中文的情况下会无法识别中文并出错。所以一般都要在开头加上一行就行编码的设定,根据使用的编辑器不同,设定编码的语句也不经相同。以下就用使用最广泛的 “Pycharm”为例。


# coding=utf-8     设定编码形式为utf-8。utf-8为最常用,使用率最高的中文编码。在设定了中文编码后,就可以识别中文,并将文件以 utf-8编码的形式就行保存。


而在平时我们经常用到 载入文件,或网上抓取数据,很多时候这些编码都不会是完全一样的,这就涉及到编码的转化,python中用 decode 解码,encode 编码。都需要进过Unicode中间码来进行转换。


unicode 是什么?
Unicode是最通用的编码格式,囊括了中文,英文,德文等常用多国语言,是一个非常好的通用性编码。基本上涉及到多编程语言,多软件,多系统,多国家等等,在不同环境下编程都是使用 Unicode编码。


python的解码编码流程:
A编码 → Unicode → C编码。任何编码的转换都是如此。
A.decode('utf-8')    %为将utf-8编码形式的A转换成 Unicode 编码,括号里写的是A的编码形式,不是想要转化成目标编码形式。
python入门笔记(3):python的编码问题
输出为:
 python入门笔记(3):python的编码问题


然后,B.encode('utf-8')   %将Unicode编码转换成utf-8编码。括号里写的是想要转换的目标形式。
 
基本就是这么简单。只是因为编码种类比较多,比如电脑TXT文本的编码是GB2312,CMD命令的编码是GBK,由于这些的不同,才导致了麻烦,其实只要都将他们转成Unicode码就可以了,平时数据的传递,大多都使用Unicode。
原创粉丝点击