Я использую Beautiful Soup для анализа веб-страниц и печати имени веб-страниц, посещенных на терминале. Однако часто имя веб-страницы имеет один правый (\ u2018) и символ (\ u2019), который python не может печатать, поскольку он дает ошибку кодирования charmap. Есть ли способ удалить эти символы?
Удаление символов \u2018 и\u2019
Ответ 1
Эти коды являются Unicode для одиночных символов левой и правой кавычек. Вы можете заменить их эквивалентом ASCII, который Python не должен иметь проблем с печатью в вашей системе:
>>> print u"\u2018Hi\u2019"
‘Hi’
>>> print u"\u2018Hi\u2019".replace(u"\u2018", "'").replace(u"\u2019", "'")
'Hi'
Альтернативно с регулярным выражением:
import re
s = u"\u2018Hi\u2019"
>>> print re.sub(u"(\u2018|\u2019)", "'", s)
'Hi'
Однако у Python не должно быть проблем с печатью версии Unicode. Возможно, вы используете str()
где-нибудь, который попытается преобразовать ваш unicode в ascii и выбросить ваше исключение.