кодек 'ascii' не может кодировать символ в позиции * ord не в диапазоне (128)

Есть несколько потоков в stackoverflow, но я не смог найти правильное решение проблемы в целом.

Я собрал огромные суммы текстовых данных из функции чтения urllib и сохранил их в файлах pickle.

Теперь я хочу записать эти данные в файл. Во время написания я получаю ошибки, похожие на –

'ascii' codec can't encode character u'\u2019' in position 16: ordinal not in range(128) 

и многие данные теряются.

Я полагаю, что данные с чтения urllib являются байтовыми данными

я пробовал

  1. text=text.decode('ascii','ignore') 2. s=filter(lambda x: x in string.printable, s) 3. text=u''+text text=text.decode().encode('utf-8') 

но все же я получаю подобные ошибки. Может ли кто-нибудь указать правильное решение. А также будут работать кодеки. У меня нет проблем, если байты конфликта не записываются в файл в виде строки, следовательно, потеря принимается.

  • эффективно заменить плохие символы
  • Только первый символ строк unicode, записываемых в csv
  • UnicodeDecodeError: кодек ascii не может декодировать байт 0xef в позиции 1
  • Как заставить интерпретатор python правильно обрабатывать символы, отличные от ASCII, в строковых операциях?
  • Чтение элементов юникода в массив numpy
  • строки на иврите в python для s60
  • Ошибка MySQL «неправильное строковое значение» при сохранении строки unicode в Django
  • Ошибка кодирования с помощью node.js
  • 2 Solutions collect form web for “кодек 'ascii' не может кодировать символ в позиции * ord не в диапазоне (128)”

    Вы можете сделать это через smart_str из модуля Django . Просто попробуйте следующее:

     from django.utils.encoding import smart_str, smart_unicode text = u'\u2019' print smart_str(text) 

    Вы можете установить Django, запустив командную оболочку с правами администратора и выполните следующую команду:

     pip install Django 

    Ваши данные – данные в Юникоде . Чтобы записать это в файл, используйте .encode() :

     text = text.encode('ascii', 'ignore') 

    но это удалит все, что не является ASCII. Возможно, вы хотели кодировать более подходящую кодировку, например UTF-8?

    Вы можете прочитать на Python и Unicode:

    • Абсолютный минимум Каждый разработчик программного обеспечения Абсолютно, положительно должен знать о Unicode и наборах символов (без оправданий!) Джоэл Спольски

    • Юникод Python HOWTO

    • Прагматический Юникод от Нед Батчелдер

    Python - лучший язык программирования в мире.