上古卷轴5存档闪退 Wrye Bash 闪退 codec can't decode byte 0xcb in position 7: ordinal not in range(128)

订阅你的位置: >
> 【整理】Python中遇到&UnicodeDecodeError: ‘gbk’ codec can’t decode bytes in position 2-3: illegal multibyte sequence&之类的编码或解码的错误时如何处理
【背景】问题参见:中的:报错的异常是   UnicodeDecodeError: ‘gbk’ codec can’t decode bytes in position 2-3: illegal multibyte sequence此问题,还是很具有代表性的,此处,专门整理如下: 【Python中如何处理UnicodeDecodeError和UnicodeEncodeError】简答:1.仔细分析错误的类型2.搞清自己处理的字符串是什么类型的3.然后换用这种的字符编码去编码或解码 详解:以上面的错误:UnicodeDecodeError: ‘gbk’ codec can’t decode bytes in position 2-3: illegal multibyte sequence为例,去解释,如何处理这类问题:1.仔细分析错误的类型(1)错误是Unicode的编码还是解码对于此处,错误是:UnicodeDecodeError的类型的。此英文,对应的中文的含义,其实已经很清楚了:Unicode的解码(Decode)出现错误(Error)了而对于上面这句,我们可以推断出:你当前正在处理某种编码类型的字符串此处你要处理字符串,是想要将该字符串去解码decode,变成Unicode但是将该字符串解码变成Unicode期间,却出错了 (2)所用的是何种编码好的,接着看上面的错误:‘gbk’ codec can’t decode使得错误信息更加明显了:你此处,要将字符串解码为Unicode,是以gbk编码的方式去解码(该字符串变成Unicode)的但是此处通过gbk的方式,却无法解码(can’t decode )注:此处的codec,意思是:编解码(器),是Python内部的模块,用来编码或解码(字符串)的 (3)错误位置bytes in position 2-3此处的信息,后续一般也很少用到。有时候会用于定位具体错误的位置。此处暂且忽略。 (4)错误的细节错误类型illegal multibyte sequence翻译为中文为:非法的,多字节,序列简单说就是:没法(解码)了。 【原因及解决办法】好了,针对于上面所分析出来的信息:将一个字符串,通过gbk的方式,去解码,想要获得Unicode字符串,结果出错了我们来说说原因和解决办法:此种错误,有几种可能: (1)要处理的字符串本身不是gbk编码,但是你却以gbk编码去解码 比如,字符串本身是utf-8的,但是你却用gbk去解码utf-8的字符串,所以结果不用说,则必然出错则必然会出现这类的错误,说是,用gbk的方式去解码字符串,想要获得Unicode字符串,但是结果却解码出错了解决办法:如果你确定当前字符串,比如抓取网页通过charset=utf-8,已经确定html的字符串是utf-8的,则可以直接去通过utf-8去解码。 相关参考内容:中的: 而如果本身对于所处理的字符串,不太清楚是什么编码类型的,可以尝试去通过chardet等模块,去检测看看:然后搞清楚了,确定了,字符串是什么类型,然后再去解码。提示:关于字符串编码的类型,作为背景学习知识,也应该去了解一下。这样对于以后处理字符串方面,会更有帮助。 (2)你没有主动的去将字符串编码为对应的Unicode,但是结果也报上面的UnicodeDecodeError的错误这个情况,最常见的,就是我之前在:所整理过的:“Python中,打印字符串时,字符串本身的编码,与输出终端中所用编码不匹配”此处不再赘述,只简要再说一下:如果你本身拿到的是utf-8等,非gbk编码的字符串,然后用print去打印出来在windows系统就是输出到cmd中而cmd中,(对于多数中国人所用的是中文的系统)默认字符编码是gbk从而导致此种现象:python要将utf-8编码的字符串,在gbk的cmd的中打印出来所以先要去尝试,用gbk的编码,解码为Unicode然后再打印出来结果就出现此处的错误了。详细解释,还是参见上面的教程。其中还有示例代码的。 (3)处理的字符的确是gbk的,但是其中夹杂的部分特殊字符,是gbk编码中所没有的 如果有些特殊字符是GB18030中有的,但是是gbk中没有的。 则用gbk去解码,去所不支持的字符,也比如会出错。 所以,此种情况,可以尝试用和当前编码(gbk)所兼容的但所包含字符更多的编码(gb18030)去解码,或许就可以了。提示:如果对于GBK,GB18030,以及GB2312不了解,则可参考: 另外:如果遇到其他的,类似此中错误的,比如:UnicodeEncodeError: 'gbk' codec can't encode character u'\u3232' in position 0: illegal multibyte sequence等类型的错误,你就可以按照上述的思路,去分析,错误的现象,原因,然后通过自己,就可以找到解决办法了。 注:其他和这类错误相关的,也还有一些可以参考的:中的:“返回的html内容是乱码”转载请注明: & 与本文相关的文章
16 queries in 0.257 seconds, using 9.85MB memory下次自动登录
现在的位置:
& 综合 & 正文
python编码错误UnicodeDecodeError: ‘ascii’/'utf-8′ codec can’t decode byte 0xb8 in position 50: ord
这个错误是因为你代码中的某个字符串使用了费ascii编码的字符,也就是它代表的16进制的编码超过127。
解决这个问题可以使用下面的方法解决,其实就是设置默认的编码。python 2.x的默认编码是ascii,如果改为utf-8,就可以了
如果有中文还是不行,可以使用gbk编码方式,具体使用如下:
import sys
reload( sys )
sys.setdefaultencoding('gbk')
&&&&推荐文章:
【上篇】【下篇】Python “'ascii' codec can't decode byte 0xb0i in position 1” 的解决方法
在使用python2.7时,使用GAE 的dev_appserver.py开启服务器并启动python程序时,会报
File "C:\27\lib\mimetypes.py", line 249, in enum_types
ctype = ctype.encode(default_encoding) # omit in 3.x!
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 1: ordinal
not in range(128)
错误,比较暴力的解决方法是,删除python27\lib 目录下面mimetype.py中的如下代码,在246行,
ctype = ctype.encode(default_encoding) # omit in 3.x!
except UnicodeEncodeError:python UnicodeDecodeError: 'utf8' codec can't decode byte 0xd4 in position x: invalid continuation byte - 为程序员服务
为程序员服务
UnicodeDecodeError: 'utf8' codec can't decode byte 0xd4 in position x: invalid continuation byte
在执行下面语句时会报错
o = &a test of \xe9 char& #I want this to remain a string as this is what I am receiving
v = o.decode(&utf-8&)
错误堆栈信息如下:
Traceback (most recent call last):
File &&stdin&&, line 1, in &module&
File &C:\Python27\lib\encodings\utf_8.py&,
line 16, in decode
return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError:
'utf8' codec can't decode byte 0xe9 in position 10: invalid continuation byte
这是因为\xe9不是合法的utf-8字符,不符合utf-8的定义,对于这种情况可以这么处理:
o = &a test of \xe9 char& #I want this to remain a string as this is what I am receiving
v = o.decode('latin-1').encode(&utf-8&)
您可能的代码
相关聚客文章
荣誉:1347
相关专栏文章解决unicodedecodeerror ascii codec can’t decode byte 0xd7 in position 9 ordinal not in range(128) – 运维生存时间
你可能喜欢
有回复时邮件通知我
关于本站 本站以分享运维技术为主,欢迎大家参与技术分享,同时也欢迎大家吐槽,本站提供以下交流圈:QQ群①:*****(满)QQ群②:6690706 QQ群③: QQ群④:(新) 微信公众号:ttlsacom 商务合作QQ:
记住我的登录信息
点击“立即注册”转到用户注册页面。
输入用户名或电子邮箱地址,您会收到一封新密码链接的电子邮件。
用户名或电子邮件地址}

我要回帖

更多关于 上古卷轴5mod闪退 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信