Python, PyGame UnicodeDecodeError - PullRequest
       8

Python, PyGame UnicodeDecodeError

0 голосов
/ 11 июня 2018

Python, PyGame UnicodeDecodeError: кодек «ascii» не может декодировать байт 0xe2 в позиции 0: порядковый номер не находится в диапазоне (128)

Мне известны другие ответы напохожие вопросы, но ни один из них не решил мою проблему.

Это мой код:

# coding=utf-8
W = "─│"
ENCODING = "utf-8"

def maze():
tr_list = pygame.sprite.Group() 
count_i = 0 
count_j = 0 
f = codecs.open("files/ma.txt", mode="r+", encoding=ENCODING)  
# Open file as f
read = f.read().splitlines()
f.close()
for line in read:
    for m in line:
        if m in W:
            if m == '│':
                tr_list.add(MazeV(count_j, count_i))
            elif m == '─':
                tr_list.add(MazeH(count_j, count_i))
        count_j += ADD
    count_i += ADD
return tr_list

Это ошибка при запуске кода:

File "/Users/user/Documents/Pact/Main.py", line 637, in <module>
main()
File "/Users/user/Documents/Pact/Main.py", line 121, in main
wall_list = maze()  # Set up the maze
File "/Users/user/Documents/Pact/Main.py", line 493, in maze
if i in WALL:  # If wall
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: 
ordinal not in range(128)

Iпробовал кодирование и декодирование во многие форматы, но проблема осталась прежней.Есть ли что-нибудь, что я могу сделать?

Это ma.txt:

ma.txt

Заранее спасибо

1 Ответ

0 голосов
/ 11 июня 2018

попробуй расшифровать line, может поможет

for line in read:
    for m in line.decode(ENCODING):
        ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...