好友
阅读权限10
听众
最后登录1970-1-1
|
最近因为工作上的需要,自己用python做了一个文字处理程序,但在处理输入端传入的GBK编码的XML文档时,由于XML解析器只认UTF-8编码,因此需要将GBK字节流转换为UTF-8格式。
问题就在这个地方:由于输入端的GBK字节流里有一些无法被GBK解码器解码的字节(形如\xa0\xaa),导致解码器进行解码的时候会直接报UnicodeDecodeError,然后就无法继续进行下一步。在此想询问有什么比较好的解决方法,识别字节流中不被支持的字节并予以去除?
我目前用的简单解决方案是这样的,最后的outstr就是输出的字符串了,但是这个解决方案会发生一些奇怪的问题,比如多出了一些不必要的符号。
[Python] 纯文本查看 复制代码 instr = b'{GBK_Bytes}'
# 假设instr是GBK编码的字节流
while True:
try:
outstr = instr.decode('GBK')
break
except UnicodeDecodeError as e:
instr = instr[:e.args[2]] + instr[e.args[3]:] |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|