decode函数的其他参数 decode函数

在工作中,经常遇到,读取一个文件,或者是从网页获取一个问题,明明看着是gb2312的编码,可是当使用decode转时,总是出错,这个时候,可以使用decode(‘gb18030′)这个字符集来解决,如果还是有问题,这个时候,一定要注意,decode还有一个参数,比如,若要将某个String对象s从gbk内码转换为UTF-8,可以如下操作
s.decode(‘gbk’).encode(‘utf-8′)
可是,在实际开发中,我发现,这种办法经常会出现异常:
UnicodeDecodeError: ‘gbk’ codec can’t decode bytes in position30664-30665: illegal multibyte sequence
这是因为遇到了非法字符——尤其是在某些用C/C++编写的程序中,全角空格往往有多种不同的实现方式,比如xa3xa0,或者xa4x57,这些字符,看起来都是全角空格,但它们并不是“合法”的全角空格(真正的全角空格是xa1xa1),因此在转码的过程中出现了异常。
这样的问题很让人头疼,因为只要字符串中出现了一个非法字符,整个字符串——有时候,就是整篇文章——就都无法转码。
解决办法:
s.decode(‘gbk’, ‘ignore’).encode(‘utf-8′)
decode函数的其他参数 decode函数
因为decode的函数原型是decode([encoding],[errors='strict']),可以用第二个参数控制错误处理的策略,默认的参数就是strict,代表遇到非法字符时抛出异常;
如果设置为ignore,则会忽略非法字符;
如果设置为replace,则会用?取代非法字符;
如果设置为xmlcharrefreplace,则使用XML的字符引用。

python文档

decode( [encoding[, errors]])
Decodes the string using the codec registered for encoding.encoding defaults to the default string encoding. errors may begiven to set a different error handling scheme. The default is’strict’, meaning that encoding errors raise UnicodeError. Otherpossible values are ‘ignore’, ‘replace’ and any other nameregistered via codecs.register_error, see section 4.8.1.

  

爱华网本文地址 » http://www.413yy.cn/a/25101011/51834.html

更多阅读

IP地址与网络上的其他系统有冲突怎么办 精 系统ip地址冲突

很多网友经常在使用电脑联网的时候,会看到这样的提示“ip与其他系统冲突”,但是网友不知道如何解决该问题,最后没有办法选择重装系统。其实只要我们留意一些细节并简单的操作几下就可以解决问题了。IP地址与网络上的其他系统有冲突怎么

spss教程:两独立样本的非参数检验

spss教程:两独立样本的非参数检验——简介在对总体分布不了解的情况下,通过对两组独立样本的分析来推断样本来自的两个总体分布是否存在显著性差异。Spss提供多种两独立样本的非参数检验方法。其中包括曼-惠特尼U检验、K-S检验、W-W游

图解齿轮的基本参数 锐界的基本参数

图解齿轮的基本参数——简介 UG属于模具中的姣姣者,只要你掌握了工件的图解,学会了UG的基本操作,那么你就对UG的制图就比较了解了。下面是关于齿轮的图解参数。图解齿轮的基本参数——方法/步骤图解齿轮的基本参数 1、齿数z一个齿轮

CO2气体保护焊的工艺参数选择 co2气体保护焊技术

2012-02-20 14:09CO2气体保护焊以其速度快、操作方便、焊接质量高、适用范围广和成本低廉等诸多优势,逐渐取代了传统的手工焊条电弧焊。在焊接生产中,焊接工艺参数对焊接质量和焊接生产率有很大的影响,正确选择焊接工艺参数是获得质量

骨盆矫正压揉法的其他作用仝氏整骨 矫正骨盆最有用的动作

骨盆矫正压揉法的其他作用骨盆矫正压揉法不仅仅限于对病人的治疗,对某些疾病的预防、消除疲劳等方面也有很好的效果。现列举如下:(1)有人说,治疗时有一种暖和、爽快和舒适的感觉。的确像他们所说的那样,心脏没有负担,也没有到医院治疗

声明:《decode函数的其他参数 decode函数》为网友性不改分享!如侵犯到您的合法权益请联系我们删除