关于phython中的编码问题的简单研究

关于phython中的编码问题的简单研究

对于刚接触python语言的初学者,解决编码问题应该算是首要的任务。以下就编码的类型、Python代码中存在中文字符时提示无法解码错误的根源、程序代码出现中文解码错误的解决方法、设置文件编码格式的方法等做简单讨论。

1.编码的类型
关于编码的介绍网上有不少资源。常见的编码类型有:ASCII 码 、GBK 、GB2312 、UTF-8 、UTF-16等。

2.Python代码中存在中文字符时编码错误的根源
当我们使用如Geany等编译软件写代码时,涉及到中文字符的时候会经常出错。
2.1 一个错误实例

a = '中文'
print(a)

运行结果如下:
在这里插入图片描述
错误返回提示文件编码问题,其中程序编写中出现了中文字符。
该类错误是由于python解释器没能按正确的编码模式获取到字符串的信息。
Python提供的解决方法PEP263
在代码首行添加“#coding=gbk”就能使python解释器按“gbk”编码模式解释代码信息,从而解决问题。

#coding=gbk
a = '中文'
print(a)

在这里插入图片描述
2.2 基本原理
Python2中的默认编码是ASCII,不能识别中文字符,需要显式指定字符编码;Python3的 默认编码是Unicode,可以识别中文字符。因此在python3解释器中运行代码大致为以下过程:
在这里插入图片描述

当Python3使用默认的utf-8编码格式不能解码时,就会提示解码错误。正常Geany写入的代码以ANSI编码保存的,如有中文字符自然就会以gbk作为编码方式。(具体查看方法:保存代码,在储存位置将文件名设为“XX.txt”,打开txt文件,单击“文件”,选择“另存为”,在编码栏中可以看到默认的编码模式即为当前编码模式)具体可参考高丶先生的这篇文章。
3.中文解码错误的解决方法
3.1 在代码首行添加“#coding=gbk”提示python解释器按gbk编码模式解释代码信息。
3.2 因为python解释器默认以utf-8编码模式解读程序代码,我们将程序代码以utf-8编码方式保存就可以了。
例如:我们使用PyCharm编译软件时,单击“File”,之后选择“File Encoding”,将编码方式选为utf-8。之后不需要任何解释说明,程序代码就可以正常运行了。

4.设置文件编码格式
以下拓展讲下如何设置保存文件编码格式。
4.1 使用codecs

#coding=gbk
str = '123中文'

import codecs
#保存unicode格式
fw=codecs.open('123.txt','a','utf-8')
fw.write(str)

运行结果得到“123.txt”
在这里插入图片描述
编码为“utf-8”
在这里插入图片描述
4.2 open()函数
这里也可以使用open()函数实现指定编码文件的存储:

#coding=gbk
str = '123中文' 
with open('1234.txt','a',encoding='ansi') as f:
	f.write(str)

结果如下:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值