在这个网站上有几十个甚至几百个关于使用python进行unicode处理错误的问题.这是我所说的一个例子:
UnicodeDecodeError:'ascii'编解码器无法解码位置2310中的字节0xe2:序数不在范围内(128)
很多问题表明OP只是想让违规内容走开.他们收到的回复统一充满了关于编解码器,字符集以及各种不能解决这个基本问题的各种事情:
"我正在尝试处理一个带有一些unicode的文本文件,我不太关心这些东西是什么,它只是在我试图解决的问题的背景下的噪音."
所以,我有一个包含大量JSON编码推文的文件,我对这些特殊字符根本不感兴趣,我希望它们从行中删除.
fh = open('file-full-of-unicode.txt')
for line in fh:
print zap_unicode(line)
Run Code Online (Sandbox Code Playgroud)
给定一个名为'line'的变量,我如何简单地打印它减去它可能包含的任何unicode?
在那里,我以几种不同的方式重复了这个问题,所以它不能被误解 - unicode在我想要做的事情的背景下是垃圾,我想把它转换成无害的东西或者完全删除它.这最容易实现的是什么?
Bre*_*arn 11
你可以做到line.decode('ascii', 'ignore').这将解码为ASCII所有内容,忽略任何错误.
但是,如果你这样做,请为疼痛做好准备.Unicode存在是有原因的.丢弃部分数据甚至不知道你扔掉了什么几乎总会导致问题.这就像是说"我不在乎我的汽车发动机内部的一些小玩意儿是否起作用,我只是想驾驶它.只要拿出任何不起作用的东西!" 这一切都很好,直到它爆炸.
问题不能"消失",必须修复无法unicode正确处理的代码.没有简单的方法可以做到这一点,但最简单的方法是解码输入上的字节,以确保应用程序在任何地方使用文本.
| 归档时间: |
|
| 查看次数: |
2490 次 |
| 最近记录: |