在python中使用外部符号

时间:2009-07-02 18:10:35

标签: python parsing utf-8 ascii symbols

我正在使用Python解析JSON提要并且它包含此字符,导致它无法验证。

有没有办法处理这些符号?它们可以被转换,还是它们是一种整洁的方式来移除它们?

我甚至不知道这个符号叫什么或者是什么原因导致它们,否则我会自己研究它。

编辑:Stackover Flow正在剥离角色,所以这里: http://files.getdropbox.com/u/194177/symbol.jpg

这是“Classic 80s”中的[?]符号

2 个答案:

答案 0 :(得分:1)

这可能意味着您拥有的文本采用某种编码方式,您需要确定编码方式,并使用text.decode('encoding')调用将其转换为Unicode。

我不确定,但它可能是[?]字符,这意味着你在那里的显示器也不知道如何显示它。这可能意味着您拥有的数据不正确,并且您应该使用的编码中不存在某个字符。要处理你像这样调用解码:thetext.decode('encoding','ignore')。除了忽略之外还有其他选项,例如“replace”,“xmlcharrefreplace”等等。

答案 1 :(得分:0)

JSON必须使用UTF-8,UTF-16或UTF-32编码。如果JSON文件包含在其当前编码中非法的字节,则它是垃圾。

如果您不知道它正在使用哪种编码,您可以尝试使用我的jsonlib库进行解析,其中包括编码检测器。使用jsonlib解析的JSON将作为Unicode字符串提供给程序员,因此您根本不必担心编码。