帮助在Python中替换非ASCII字符

0 投票
3 回答
3172 浏览
提问于 2025-04-15 23:14

我有一堆用Python的HTTPLIB2库下载的HTML文件。里面的空格显示成了'Â '。

<font color="#ff0000">02/12/2004Â </font> is showing while <font color="#ff0000">02/12/2004&nbsp;</font> is the desired format.

我该怎么在Python中把'Â '替换成'&nbsp;'呢?非常感谢!

3 个回答

-1
s.replace('Â ', '&nbsp;');

不过,虽然我没有用过HTTPLIB2,但我可以肯定,如果你下载HTML文件时文件的内容发生了变化,那肯定是出了问题。可能是解码时出现了问题。你用的是什么版本的Python?如果是Python 3,内容会是字节序列,而不是字符串,所以你需要指定正确的编码方式来解码这些字节。

http://code.google.com/p/httplib2/wiki/ExamplesPython3

补充:如果你不局限于使用httplib2,或许可以考虑使用Python 2.6标准库中的urlliburllib2httplib模块?

0
filtered_content = filter(lambda x: x in string.printable, content)

这个解决了我的问题。谢谢你!

1

你遇到了编码问题。与其试着去删除那些字符,不如先找出这个页面的编码方式。然后在读取文件时,使用codecs模块,而不是用open(),这样可以确保使用正确的字符编码。

撰写回答