@Brad_baf

Как исправить проблему с кодировкой (UnicodeEncodeError: 'latin-1' codec can't encode characters..) в тг боте?

Бот который создает qrcode. Если ему отправить текст с пробелом между слов на русском языке то он выдаст ошибку(UnicodeEncodeError: 'latin-1' codec can't encode characters..). Что делать?

def qrcodegen(message):
    def is_allowed(string):
        characherRegex = re.compile(
            r'[^\*\@\#\$\%\^\!\"\№\;\:\?\(\)\_\ \-\+\=\&\]\[\{\}\/\'\,a-zA-Zа-яА-Я0-9.]')
        string = characherRegex.search(string)
        return not bool(string)
    x = message.text
    if is_allowed(x):
        qr = pyqrcode.create(x)
        qr.png('your_qrcode.png', scale=8)
        qr = open('your_qrcode.png', 'rb')
        bot.send_message(message.chat.id, "Your qrcode:", parse_mode='html')
        bot.send_photo(message.chat.id, qr)
    else:
        bot.send_message(
            message.chat.id, "Something went wrong", parse_mode='html')
  • Вопрос задан
  • 303 просмотра
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
qr = pyqrcode.create(x.encode('utf-8'))
И приводите в следующий раз, пожалуйста, полный текст ошибки. Там еже всё указано где проблема. Какого черта вы заставляете гадать на кофейной гуще?
Думаете интерпретатор вам этот весь "мусор" просто так написал?
Так и задали бы вопрос: написал программу - не работает, памагити!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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