当前位置:首页 » 编程语言 » python中decode

python中decode

发布时间: 2022-06-24 01:39:12

python读取txt文档的时候遇到decode错误如何解决

你用的是python3才会出这个问题。python3在readlines里,缺省会使用操作系统当前的编码来解析文件,比如windows下就用GBK,在linux下则根据当前language来设置解析办法。


解决的办法是在open()里加上参数


fi=open('somefile.txt','r')

改成

fi=open('somefile.txt','rt',encoding="utf-8")

这个encoding就是指定编码格式。如果encoding="utf-8"不行,你就改成encoding="gb18030",如果还不成,就改成encoding="big-5"。如果还不成。只能手工将" —"
替换成负号。

Ⅱ pythonencode和decode的区别

encode编码,decode解码
相反的两个过程。

Ⅲ python怎么知道一个字符串的编码方式

字符串的编码,有很多种如utf-8,gb2312,gbk,gb18030,bz2,zlib,big5,bzse64

python 对编码的处理有两个方法,decode()和 encode()方法

a='你好'
b='python'
printa.decode('utf-8').encode('gbk')##decode方法把字符串转换为unicode对象,然后通过encode方法转换为指定的编码字符串对象
printb.decode('utf-8')##decode方法把字符串转换为unicode对象

所以要让python(或者说机器)来识别字符串的编码,是一件很困难的事。编码就是汉字和整数之间的对应,同一个整数,可以在不同的编码中,都有对应的汉字。比如下面的例子,比特流'xe6xb0xb4xe5xa3xb6'在四种编码中都有对应的汉字,但只有在utf-8编码下,它对应的汉字才有意义。我们可以一眼看出这点,可是要让计算机做到这点,就很难了。

>>>s='水壶'
>>>s
18:'xe6xb0xb4xe5xa3xb6'
>>>printunicode(s,'big5')
瘗游ㄥ
>>>printunicode(s,'gbk')
姘村6
>>>printunicode(s,'gb2312')
姘村6
>>>printunicode(s,'utf-8')
水壶

Ⅳ 为什么python decode每效果

decode()方法使用注册编码的编解码器的字符串进行解码。它默认为默认的字符串编码。

语法

以下是decode()方法的语法:
str.decode(encoding='UTF-8',errors='strict')

参数

encoding -- 这是所使用的编码。对于所有的编码方案的列表,请访问:标准编码库

errors --
这可能是给定一个不同的错误处理机制。默认的错误是“严格”,即编码错误提出UnicodeError。其他可能的值是ignore',
'replace', 'xmlcharrefreplace', 'backslashreplace'
并通过codecs.register_error().注册的任何其他名称。

返回值

此方法返回的字符串的解码版本。

例子

下面的例子显示了decode()方法的使用。

#!/usr/bin/python

str = "this is string example....wow!!!";
str = str.encode('base64','strict');

print "Encoded String: " + str;
print "Decoded String: " + str.decode('base64','strict')

当我们运行上面的程序,它会产生以下结果:
Encoded String: =

Decoded String: this is string example....wow!!!

Ⅳ python decode之后是什么编码

是unicode,如果原来是gbk我要转utf-8应该这样:

a="某gbk编码内容"
a.decode('gbk').encode('utf-8')
#先用gbk的方式解码成unicode再把unicode转换成utf-8

Ⅵ python3 没有str.decode怎么办

  1. python3中encode和decode跟python2还是有一定的区别的,在python3中:

  2. encode(编码):按照某种规则将“文本”转换为“字节流”。 python 3中表示:unicode变成str

  3. decode(解码):将“字节流”按照某种规则转换成“文本”。 python3中表示:str变成unicode

  4. 字符串在Python内部的表示是Unicode编码,因此在做编码转换时,通常需要以Unicode作为中间编码,即先将其他编码的字符串解码(decode)成Unicode,再从Unicode编码(encode)成另一种编码。

Ⅶ python3 decode()和encode()默认是什么编码格式

默认是utf-8
python3全面支持utf-8,再也不必为编码烦恼了

Ⅷ Python中中文字符串怎么处理

如果处理的字符串中出现中文表示的字符,要想不出错,就得转成unicode编码了。具体的方法有:
1、decode(),将其他边编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码;
2、encode(),将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码;
3、unicode(),同decode(),将其他编码的字符串转换成unicode编码,如unicode(str3, 'gb2312'),表示将gb2312编码的字符串str3转换成unicode编码。
转码的时候一定要先搞明白字符串str是什么编码,然后decode成unicode,最后再encode成其他编码。
另外,对一个unicode编码的字符串在进行解码会出错,所以在编码未知的情况下要先判断其编码方式是否为unicode,可以用isinstance(str, unicode)。
不仅是中文,以后处理含非ascii编码的字符串时,都可以遵循以下步骤:
1、确定源字符的编码格式,假设是utf8;
2、使用unicode()或decode()转换成unicode编码,如str1.decode('utf8'),或者unicode(str1, 'utf8');
3、把处理后字符串用encode()编码成指定格式。

热点内容
算法牛人左 发布:2025-02-05 15:31:02 浏览:438
php筛选功能 发布:2025-02-05 15:29:09 浏览:166
ip匹配服务器 发布:2025-02-05 15:10:35 浏览:909
php语法后 发布:2025-02-05 15:10:34 浏览:59
oppor9s怎么压缩文件 发布:2025-02-05 15:00:34 浏览:639
苹果耳塞怎么改安卓也能用 发布:2025-02-05 14:50:54 浏览:558
安卓如何鉴别手机真假 发布:2025-02-05 14:28:15 浏览:121
ffmpeglinux编译 发布:2025-02-05 14:28:04 浏览:545
服务器如何做界面 发布:2025-02-05 14:27:23 浏览:291
访问学者单位推荐意见 发布:2025-02-05 14:13:05 浏览:854