Приложение Heroku не отображает символы кириллицы с кодировкой UTF-8 по умолчанию
Всем здравствуйте! Я новичок в использовании облачных платформ, таких как Heroku. Я написала на python парсер для сайта и обернула его в telegram бота. Принцип работы бота следующий: пользователь отправляет ссылку и количество страниц, а бот возвращает таблицу с данными из объявлений.
- Но проблема заключается в том, что при запуске кода в PyCharm все работает, бот отправляет csv файл с информацией на кириллице, но когда бот был загружен на платформу Heroku и был запущен, то начал отправлять непонятные наборы символов, вроде как в кодировке Windows-1250.
- Для решения проблемы я в настройках heroku config vars поставила LANG = en_US.UTF-8. Не помогло. Записывала encoding = 'utf-8' в конструкциях with open() и csv.writer() - тоже никаких изменений.
Ошибка кроется в неверном понимании кодировки для кириллици и её правильном оформлении конкретно для heroku.
#функция заполняет таблицу информацией из массива массивов items
def save_file(items):
with open('cars_tab.csv', 'w', newline='') as file:
writer = csv.writer(file, delimiter=';')
writer.writerow(['Марка', 'Ссылка', 'Цена в $', 'Цена в UAH', 'Город'])
for item in items:
writer.writerow([item['title'], item['link'], item['usd_price'], item['uah_price'], item['city']])
return file
Скажите, в чем моя ошибка и как я могу сделать так, чтобы бот отправлял информацию на кириллице? Опишите, пожалуйста, максимально подробно и понятно. Заранее спасибо!
Ответы (1 шт):
Автор решения: Maria
→ Ссылка
Вот такая некрасивая конструкция решила мою проблему:
item['city'] = item['city'].encode('cp1251').decode('utf-8')