Python: pygame.mixer.music и имена файлов в юникоде - PullRequest
0 голосов
/ 01 декабря 2010

Когда вы пытаетесь использовать pygame.mixer.music.open () со строкой имени файла, содержащей символы Unicode, кажется, что все время выдается ошибка UnicodeEncodeError:

File "C:\TestPlayer.py", line 43, in <module>
pygame.mixer.music.load(x)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 12-19: 
ordinal not in range(128)

(ломаные линии для вашего удовольствия от просмотра)

Я проверил существование x, используя os.path.exists (x), который возвратил True. Я делаю что-то неправильно? Если нет, то можно ли вручную исправить микшер Pygame (это файл .pyd)?

Я использую Python 2.6 и Pygame 1.9.1.

Я забыл добавить файл, который пытался открыть, это mp3-файл, но сайт / вики Pygame утверждает, что pygame.mixer.music должен работать с ними. На самом деле это так, если имя файла содержит только символы ASCII.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2011

Вы пытались

fle = open(filename, 'rb')
pygame.mixer.music.load(fle)

и

fle = open(filename, 'rb')
pygame.mixer.load(fle.read())

Или вы можете попробовать, я не знаю, что-то вроде

fle = open(filename, 'rb')
foo = fle.read()
pygame.mixer.load(fle.encode('ascii'))
0 голосов
/ 01 декабря 2010

Вместо передачи имени файла, откройте файл в формате, совместимом с юникодом, и передайте объект файла в pygame.mixer.music.load

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...