python中decode
Ⅰ 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怎么办
python3中encode和decode跟python2还是有一定的区别的,在python3中:
encode(编码):按照某种规则将“文本”转换为“字节流”。 python 3中表示:unicode变成str
decode(解码):将“字节流”按照某种规则转换成“文本”。 python3中表示:str变成unicode
字符串在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()编码成指定格式。