laowantong / mocodo

Modélisation Conceptuelle de Données. Nickel. Ni souris.
https://www.mocodo.net
MIT License
181 stars 51 forks source link

Crash au lancement avec "UnicodeDecodeError: 'charmap' codec can't decode byte..." #102

Closed laowantong closed 9 months ago

laowantong commented 9 months ago

Ce problème a été signalé par des utilisateurs de Windows dont la langue du système est l'anglais.

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\yohan\anaconda3\Scripts\mocodo.exe\__main__.py", line 7, in <module>
  File "C:\Users\yohan\anaconda3\Lib\site-packages\mocodo\__main__.py", line 329, in main
    run = Runner()
          ^^^^^^^^
  File "C:\Users\yohan\anaconda3\Lib\site-packages\mocodo\__main__.py", line 79, in __init__
    self.params = parsed_arguments()
                  ^^^^^^^^^^^^^^^^^^
  File "C:\Users\yohan\anaconda3\Lib\site-packages\mocodo\argument_parser.py", line 266, in parsed_arguments
    transformations = Transformations(default_params["language"])
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\yohan\anaconda3\Lib\site-packages\mocodo\argument_parser.py", line 59, in __init__
    template_data = json.loads(index_path.read_text())
                               ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\yohan\anaconda3\Lib\pathlib.py", line 1059, in read_text
    return f.read()
           ^^^^^^^^
  File "C:\Users\yohan\anaconda3\Lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 243: character maps to <undefined>

Un contournement consiste à passer l'encodage par défaut en UTF-8, puis à redémarrer :

region_set_3

En 2023, apparemment, le support d'UTF-8 par Microsoft est toujours en bêta 😜

Plus de détails pour arriver à cette fenêtre ici.


De mon côté, je vais forcer la lecture en UTF-8 plutôt que de m'en remettre à l'encodage par défaut du système.