Как исправить кодировку на кирилице в телеграм-боте на Google Cloud?

Сделал телеграм-бота, запустил на сервере на Ubuntu от Google Cloud.
Но бот на русском языке (кириллице) имеет проблемы с кодировкой.

Конфиг текстовиков для бота сохранён в UTF-8 , на сервере установлен языковой пакет для РУ.

5fe1f8d88a37f969967747.jpeg

Есть подозрение, что на сервере кодировка в файлах сломалась и проблема с google cloud сервером связана, нежели с ботом. В чем может быть проблема?
  • Вопрос задан
  • 1860 просмотров
Пригласить эксперта
Ответы на вопрос 2
trapwalker
@trapwalker
Программист, энтузиаст
Проблема в кривой работе с кодировкой в исходниках бота.
Всё из-за программирования методом тыка. Не разобрались, сделали лишь бы работало на домашнем компе, а дома, наверно винда, где в терминале 866 в файловой системе где-то 1251 где-то utf-32. Когда не вполне понимаешь что делаешь, то делаешь как-то копипастой не весть как и оно работает... до поры до времени, пока локаль не поменяется, или умолчания, или файловая система с другой кодировкой не подвернётся, либо в терминале локаль будет указана другая. И ВСЁ ПРОПАЛО! ПАМАГИТИ! Вот вам кофейная гуща, гадайте что я там накалякал в исходниках и где через одно место кодировку преобразую.

Судя по крякозябликам ваш "опытный" программст где-то захардкодил неправильное преобразование utf-8 в виндовую 1251. Вот можно по определителю понять:
https://habr.com/ru/post/147843/

Проблема явно в говнокоде.
Ответ написан
@AKTO
Когда-нибудь сергей поймёт как глупо он выглядит, а пока давайте его научим что кодировка может ломаться во время компиляции. Посмотрите что в сгенерированных классах получилось, если строки хранятся там, а в конфиге только признак языка то нужно их вынести в отдельный файл и читать во время выполнения
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы