做页面转码时出现乱码,如何删掉乱码?

2016-09-01 19:24:24 +08:00
 omg21
做页面转码时出现了这个问题,同网站连续几个页面有的能转码,有的报错不能转。经过细致的检查后发现不能转码的页面有乱码,在页面中显示方框。
拿下面这个例子来说, 0 位 1 位、 3 位 4 位各是一个汉字,问题出在 2 位上, 2 位报错:
aa = b'\xb8\xad\xa4h\xd0\xc2'
bb = aa.decode('gbk')
print(bb)

UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 2: illegal multibyte sequence

我现在想既然系统能确定哪个位置有问题,那在出现问题时把这个位置的字符删掉不就行了吗?
不知道这个想法可不可行,不知道怎样把系统找出的这个位置传到变量中,请指教。

aa = b'\xb8\xad\xa4h\xd0\xc2'
try:
bb = aa.decode('gbk')
except UnicodeDecodeError:
1764 次点击
所在节点    Python
3 条回复
lovedebug
2016-09-01 19:25:44 +08:00
正确方式不是应该按页面指定的编码方式解码么- -
omg21
2016-09-01 19:45:11 +08:00
@lovedebug 页面上的编码就是 gbk ,但现在是有乱码,一个乱码导致整个页面都没法转换
DarkFenrir
2016-09-02 12:12:06 +08:00
这样行不行

aa.decode('gbk', 'ignore')

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/303296

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX