Ответ 1
У вас проблема с кодировкой. Вместо того, чтобы пытаться удалить эти символы, найдите кодировку страницы, затем, прочитав файл, используйте codecs
module вместо open()
, используя правильную кодировку символов.
У меня есть куча файлов HTML, которые я загрузил с помощью пакета HTTPLIB2 в Python. ' ' отображаются как "Â".
<font color="#ff0000">02/12/2004Â </font> is showing while <font color="#ff0000">02/12/2004 </font> is the desired format.
Как заменить 'Â '
на ' '
в Python? Большое спасибо!
У вас проблема с кодировкой. Вместо того, чтобы пытаться удалить эти символы, найдите кодировку страницы, затем, прочитав файл, используйте codecs
module вместо open()
, используя правильную кодировку символов.
filtered_content = filter(lambda x: x in string.printable, content)
Это решило мою проблему. Спасибо!
s.replace('Â ', ' ');
Однако, хотя я не использовал HTTPLIB2, я уверен, что что-то не так, если источник файлов HTML изменяется при его загрузке. Возможно, проблема с декодированием продолжается. Какую версию Python вы используете? Если это Python 3, содержимое будет байтовыми последовательностями, а не строками, поэтому вам нужно будет указать правильную кодовую страницу для декодирования байтов.
http://code.google.com/p/httplib2/wiki/ExamplesPython3
EDIT: Если вы не ограничены использованием только httplib2, возможно, вы можете попробовать изучить модули urllib
, urllib2
или httplib
, которые являются частью стандартной библиотеки Python 2.6?