请教 Python 如何识别出 String 字符串,是否含有因为编码格式错误,而造成的乱码?

2019-12-27 13:45:15 +08:00
 uti6770werty
在获取网页内容时候,早期没有处理好页面的编码格式 Unicode 或者 GB2312 的问题,一些中文文字是乱码,现在已经把内容读入到 String 内,如何判断出是否有乱码呢?
如:
textStringA = '����'
textStringB = '佽隴:蟯伎'

最怕就是 textStringB 这种,是有效中文,但它确实不是真实要看到的内容。。。
4463 次点击
所在节点    Python
6 条回复
mrchi
2019-12-27 14:03:47 +08:00
这个不太好处理吧,建议早期就处理好
watsy0007
2019-12-27 14:28:50 +08:00
delectate
2019-12-27 14:31:09 +08:00
比如长度是 10,有 5 个或以上不在 gb2312 里,就可以视为乱码了。
no1xsyzy
2019-12-27 14:55:37 +08:00
还是早期处理吧,不然可能造成流解析失败,你连 string 都没得
ClericPy
2019-12-27 17:14:29 +08:00
我之前在别人的爬虫系统里干过类似的, 这种没啥好办法, 统计 TF-IDF 找出不常见字符, 做 AC 自动机检测吧
不在乎性能的话, 自己用 Counter 找出频率比较高的, 做成一个正则检测吧
uti6770werty
2019-12-28 19:14:23 +08:00
谢谢各位,思索 10 来天,也确实没什么好办法,把这些乱码逆转回想要的编码,那更是不可能。。。。。。
重新再去获取页面,也不可能了,源站点已经把这些页面内容“过期就不放出来了”。。。。。。
现在只能老老实实把乱码的部分做缺失值处理。。。。
感谢各位热心解答~

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

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

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

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

© 2021 V2EX