Кстати говоря, Вы можете сделать заказ у разработчика которого вы сейчас читаете, по любым вопросам с администрированием серверов, а также сайтами. Я помогу в любой задаче, оплата почасовая. Можете обратиться в Telegram для быстрой обратной связи, либо на почту которая на странице "Обо мне".
Дата публикации: 07.11.2018
Дата обновления: 19.12.2021
Ошибка — ‘ascii’ codec can’t encode characters in position — часто встречаемая, и парой невозможно понять в чём собственно причина, почему из раза в раз она появляется, и почему не помогает никакие .encode(‘utf8’) и .decode(‘ascii’)
ASCII — очень древняя кодировка которая по сути уже умирает, у нее очень ограниченный набор символов, соответственно это не подходит для русского и прочих языков, нам нужна UTF8 кодировка где более миллиона символов.
Окей, давайте приступим ко всем действиям что возможно вам помогут.
1) Это выставить в начале файла
# -*- coding: utf-8 -*-
2) Сохранить в редакторе в формате UTF-8
Если после этого не помогает, нужно проверить какая системная кодировка и поддерживается ли язык ru_RU.UTF8 в вашей системе, пишем в консоли Linux — locale , если у вас все хорошо то выдача должна быть такой:
LANG=ru_RU.UTF-8 LANGUAGE= LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL=ru_RU.UTF-8
У вас не так? нужно прописать локаль, установите пакет если не установлен — apt-get install -y locales, теперь набирайте locale-gen ru_RU.UTF-8, потом набирайте dpkg-reconfigure locales, там выбирайте ru_RU.UTF-8, , если выдает ошибку, то проверьте файл /etc/locale.gen в файле удаляйте # перед значением ru_RU.UTF-8
Также советую установить русские символы для консоли на всякий случай —
После всего этого опять пишите locale-gen ru_RU.UTF-8 и dpkg-reconfigure locales
Далее, вводите locale и проверяете вывод вашего содержимого, чтобы было как выше.
Пишем для проверки установки update-locale если вывод пустой, можно спать спокойно системная кодировка установлена успешно.
Попробуйте запустить ваш скрипт, и проверить наличие кириллицы. Не помогло и у вас маленькая баз? переведите её в utf8_unicode_ci
Python3 — работает с UTF8 полностью. И эти действия помогут получать данные и обмениваться ими без проблем в UTF8.
Python2 — не особо работает с UTF8, по крайне мере не из «коробки».
Кстати говоря, Вы можете сделать заказ у разработчика которого вы сейчас читаете, по любым вопросам с администрированием серверов, а также сайтами. Я помогу в любой задаче, оплата почасовая. Можете обратиться в Telegram для быстрой обратной связи, либо на почту которая на странице "Обо мне".