Как заставить бот python читать юникод без сбоев? - PullRequest
1 голос
/ 16 апреля 2020

В настоящее время я работаю с ботом, который работает на Picarto, используя gitbash, каждый раз, когда кто-то использует эмодзи в чате, бот выдает мне следующую ошибку:

    Traceback (most recent call last):
  File "Main.py", line 107, in start
    await task
  File "E:\-\Client.py", line 76, in main
    await self.listen()
  File "E:\-\Client.py", line 173, in listen
    await self.print_override(printable)
  File "E:\-\Client.py", line 436, in print_override
    print(text)
  File "C:\Users\-\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f914' in position 49: character maps to <undefined>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "Main.py", line 181, in main
    _loop.run_until_complete(start())
  File "C:\-\base_events.py", line 616, in run_until_complete
    return future.result()
  File "Main.py", line 110, in start
    print(sys.exc_info())
  File "C:\-\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f914' in position 111: character maps to <undefined>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "Main.py", line 194, in main
    print(sys.exc_info(encoding='utf-8'))
  File "C:\-\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f914' in position 173: character maps to <undefined>

During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "Main.py", line 202, in <module>
        main()
      File "Main.py", line 198, in main
        print(sys.exc_info())
      File "C:\-\cp1252.py", line 19, in encode
        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
    UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f914' in position 244: character maps to <undefined>

Пока у меня есть пробовал:

Установка Gitbash для чтения utf-8, загрузки чего-либо из pip и вызова его в usercustom.py Я попытался сделать, чтобы исправить проблему с помощью следующего кода (возможно, сделал это неправильно)

import win_unicode_console

win_unicode_console.enable()

Я попытался вручную вставить кодировку = 'utf-8' в скрипт, но это также приводит к взлому sh

Я вроде озадаченный тем, что мне нужно сделать, чтобы решить эту проблему

Любая форма предложения, которую я мог бы предпринять, чтобы исправить это?

В настоящее время используется python 3.8

- РЕДАКТИРОВАТЬ- -

Вот фрагмент из одного из сценариев, который выдает мне сообщение об ошибке "cp1253.py". Этот код продолжает вызывать ошибку charmap - строка 19

9 class Codec(codecs.Codec):
10
11    def encode(self,input,errors='strict'):
12        return codecs.charmap_encode(input,errors,encoding_table)
13
14    def decode(self,input,errors='strict'):
15        return codecs.charmap_decode(input,errors,decoding_table)
16
17class IncrementalEncoder(codecs.IncrementalEncoder):
18    def encode(self, input, final=False):
>>>19        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
21class IncrementalDecoder(codecs.IncrementalDecoder):
22    def decode(self, input, final=False):
23        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
25class StreamWriter(Codec,codecs.StreamWriter):
26    pass
27
28class StreamReader(Codec,codecs.StreamReader):
29    pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...