【发布时间】:2013-05-13 07:18:24
【问题描述】:
这个网站上有几十个,甚至上百个关于 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)
给定一个名为“line”的变量,我如何简单地打印它减去它可能包含的任何 unicode?p>
在那里,我以几种不同的方式重复了这个问题,所以它不会被误解 - unicode 在我正在尝试做的事情的上下文中是垃圾,我想将它转换为无害的东西或完全删除它。这如何最容易完成?
【问题讨论】:
-
删除所有 Unicode,保留非 Unicode?好吧,改成空字符串就好了。
-
学习这篇文章怎么样:joelonsoftware.com/articles/Unicode.html ?你所说的“几十个 os unicode 问题”中至少有四分之一也应该指出这一点,也许,只是也许,它实际上可以教给你一些东西,这样你就可以尝试继续编码?
-
如果内容毫无意义以至于可以从中删除字符,为什么还要打印这些行?