菜单

Python三 encode()方法

2019年4月13日 - 皇家赌场系统

参数

3.参数

encoding — 要接纳的编码,如: UTF-八。
errors — 设置差异错误的处理方案。私下认可为
‘strict’,意为编码错误引起一个UnicodeError。 别的可能得值有 ‘ignore’,
‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及由此codecs.register_error() 注册的别的值。


3.参数

encoding — 要采用的编码,如”UTF-八”。
errors — 设置差异错误的拍卖方案。暗许为
‘strict’,意为编码错误引起三个UnicodeError。 其余可能得值有 ‘ignore’,
‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及由此codecs.register_error() 注册的其它值。


UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xab in position 11126: illegal multibyte sequence

选取python的时候常常会遇上文件的编码与解码难点,在那之中很广泛的一种解码错误如标题所示,上面介绍该错误的化解办法,将‘gbk’换来‘utf-捌’也适用。 
(1)、首先在打开文本的时候,设置其编码格式,如:open(‘壹.txt’,encoding=’gbk’); 
(二)、若(一)无法一蹴即至,或者是文件中现身的局地特殊符号超出了gbk的编码范围,能够选择编码范围更广的‘gb18030’,如:open(‘1.txt’,encoding=’gb18030’); 
(3)、若(二)仍无法一举成功,表明文中出现了连‘gb18030’也惊慌失措编码的字符,能够运用‘ignore’属性进行忽略,如:open(‘一.txt’,encoding=’gb18030’,errors=‘ignore’); 

(四)、还有1种常见化解办法为open(‘一.txt’).read().decode(‘gb18030’,’ignore’)

 

对于机器学习实战第陆章朴素贝叶斯一张代码完结产出的解码错误就用了地点的方法(四)化解了

 

 1 def spamTest():
 2     docList=[];classList=[];fillText=[]
 3     for i in range(1,26):
 4         wordList=textParse(open('D:/machinelearning data/machinelearninginaction/Ch04/email/spam/%d.txt' % i,encoding='utf-8',errors='ignore').read())
 5        # print('%d word:'%i)
 6         docList.append(wordList)
 7         fillText.extend(wordList)
 8         classList.append(1)
 9         wordList = textParse(open('D:/machinelearning data/machinelearninginaction/Ch04/email/ham/%d.txt' % i,encoding='utf-8',errors='ignore').read())
10         docList.append(wordList)
11         fillText.extend(wordList)
12         classList.append(0)

原稿上面代码出现错误是因为在解析ham文件夹文件二三.txt时出现解码错误,才造成整个文件运转不了,大家将文件打开的编码格局统1换到‘utf-八’,并且忽略掉出现的谬误便足以健康运作了

参考资料:

 
1,

 
2,

 

 

语法

encode()方保加利亚语法:

str.encode(encoding='UTF-8',errors='strict')
5.实例
str = "菜鸟教程";
str_utf8 = str.encode("UTF-8")
str_gbk = str.encode("GBK")

print(str)

print("UTF-8 编码:", str_utf8)
print("GBK 编码:", str_gbk)

print("UTF-8 解码:", str_utf8.decode('UTF-8','strict'))
print("GBK 解码:", str_gbk.decode('GBK','strict'))

结果

菜鸟教程
UTF-8 编码: b'\xe8\x8f\x9c\xe9\xb8\x9f\xe6\x95\x99\xe7\xa8\x8b'
GBK 编码: b'\xb2\xcb\xc4\xf1\xbd\xcc\xb3\xcc'
UTF-8 解码: 菜鸟教程
GBK 解码: 菜鸟教程
5.实例
str = "菜鸟教程";
str_utf8 = str.encode("UTF-8")
str_gbk = str.encode("GBK")

print(str)

print("UTF-8 编码:", str_utf8)
print("GBK 编码:", str_gbk)

print("UTF-8 解码:", str_utf8.decode('UTF-8','strict'))
print("GBK 解码:", str_gbk.decode('GBK','strict'))

结果

菜鸟教程
UTF-8 编码: b'\xe8\x8f\x9c\xe9\xb8\x9f\xe6\x95\x99\xe7\xa8\x8b'
GBK 编码: b'\xb2\xcb\xc4\xf1\xbd\xcc\xb3\xcc'
UTF-8 解码: 菜鸟教程
GBK 解码: 菜鸟教程

语法

  bytes.decode(encoding=’UTF-8′,errors=’strict’)

实例

以下实例显示了encode()方法的实例:

#!/usr/bin/python3

str = "菜包python";
str_utf8 = str.encode("UTF-8")
str_gbk = str.encode("GBK")

print(str)

print("UTF-8 编码:", str_utf8)
print("GBK 编码:", str_gbk)

print("UTF-8 解码:", str_utf8.decode('UTF-8','strict'))
print("GBK 解码:", str_gbk.decode('GBK','strict'))

如上实例输出结果如下:

菜包python
UTF-8 编码: b'\xe8\x8f\x9c\xe5\x8c\x85python'
GBK 编码: b'\xb2\xcb\xb0\xfcpython'
UTF-8 解码: 菜包python
GBK 解码: 菜包python

 

2.语法
str.encode(encoding='UTF-8',errors='strict')

4.返回值

该办法再次回到解码后的字符串。


官方文档解释:

str.``encode(encoding=”utf-8″errors=”strict”)

  Return an encoded version of the string as a bytes object.
Default encoding is 'utf-8'errors may be given to set a different
error handling scheme. The default for errors is 'strict', meaning
that encoding errors   raise
UnicodeError.
Other possible values
are 'ignore''replace''xmlcharrefreplace''backslashreplace' and
any other name registered
via codecs.register_error(),
see section Error
Handlers.
For a list   of possible encodings, see section Standard
Encodings.

  Changed in
version 3.1: Support for keyword arguments added.


解码方法decode()

  decode()
方法以 encoding 钦定的编码格式来解码字符串。私下认可编码规则是encoding=‘utf-八’

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图