Python:pygame.mixer.music 和 unicode 文件名
当您尝试将 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)
为您的观看乐趣而断线)
我使用 os.path 检查了 x 的存在。存在(x),返回 True。我做错了什么吗?如果没有,是否可以手动修复 pygame 的混合器(这是一个 .pyd 文件)?
我正在使用 Python 2.6 和 Pygame 1.9.1。
我忘记添加我尝试打开的文件是 mp3 文件,但 Pygame 的网站/wiki 指出 pygame.mixer.music 应该适用于这些文件。事实上,只要文件名仅包含 ASCII 字符,就可以。
When you try to use pygame.mixer.music.open() with a filename string containing Unicode characters, it seems to throw a UnicodeEncodeError all the time:
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)
(lines broken for your viewing pleasure)
I checked for x's existance using os.path.exists(x), which returned True. Am I doing something wrong? If not, is it possible to manually fix pygame's mixer (which is a .pyd file)?
I'm using Python 2.6, and Pygame 1.9.1.
I forgot to add the file I tried opening is an mp3 file, but Pygame's website/wiki states pygame.mixer.music should work with those. In fact, it does, as long as the filename only contains ASCII characters.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不要传递文件名,而是以 unicode 兼容的方式打开文件并将文件对象传递给 pygame.mixer.music.load
Instead of passing a filename, open the file in a unicode compatible way and pass the file object to
pygame.mixer.music.load
你尝试
过
或者你可以尝试,我不知道,类似
You tried
and
Or you could try, i dont know, something like