帮助在Python中替换非ASCII字符
我有一堆用Python的HTTPLIB2库下载的HTML文件。里面的空格显示成了'Â '。
<font color="#ff0000">02/12/2004Â </font> is showing while <font color="#ff0000">02/12/2004 </font> is the desired format.
我该怎么在Python中把'Â '
替换成' '
呢?非常感谢!
3 个回答
-1
s.replace('Â ', ' ');
不过,虽然我没有用过HTTPLIB2,但我可以肯定,如果你下载HTML文件时文件的内容发生了变化,那肯定是出了问题。可能是解码时出现了问题。你用的是什么版本的Python?如果是Python 3,内容会是字节序列,而不是字符串,所以你需要指定正确的编码方式来解码这些字节。
http://code.google.com/p/httplib2/wiki/ExamplesPython3
补充:如果你不局限于使用httplib2,或许可以考虑使用Python 2.6标准库中的urllib
、urllib2
或httplib
模块?
0
filtered_content = filter(lambda x: x in string.printable, content)
这个解决了我的问题。谢谢你!
1
你遇到了编码问题。与其试着去删除那些字符,不如先找出这个页面的编码方式。然后在读取文件时,使用codecs
模块,而不是用open()
,这样可以确保使用正确的字符编码。