又双叒叕是编码问题
众所周知,pygame zero 的程序运行方式有两种:1. 普通运行
2. pgzrun xxx.py(.py文件里不用import pgzrun和pgzrun.go)
那么为什么我普通运行(IDLE,not pycharm)可以正常显示中文标题的窗口,pgzrun运行就会乱码?
(程序:WIDTH = 640
HEIGHT = 480
TITLE = '跑酷'这样会乱码;
import pgzrun
...
pgzrun.go()且用普通方式运行就不会乱码。
我以为是GBK编码的问题,结果改了编码:TITLE = '跑酷'.encode().decode('utf-8')
就报错了pygame 2.1.3 (SDL 2.0.22, Python 3.9.9)
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
File "C:\Users\防止偷窥\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\防止偷窥\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\防止偷窥\AppData\Local\Programs\Python\Python39\Scripts\pgzrun.exe\__main__.py", line 7, in <module>
File "C:\Users\防止偷窥\AppData\Local\Programs\Python\Python39\lib\site-packages\pgzero\runner.py", line 92, in main
exec(code, mod.__dict__)
File "paoku.py", line 4, in <module>
TITLE = '跑酷-Pgzero'.encode().decode('gbk')
UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 8: illegal multibyte sequence pgzrun --encoding=utf-8 xxx.py
问gpt的,不知道靠不靠谱
鱼cpython学习者 发表于 2023-3-25 17:55
pgzrun --encoding=utf-8 xxx.py
问gpt的,不知道靠不靠谱
不靠谱。
pgzrun: error: no such option: --encoding 那应该是你.py文件编码问题 吧。
使用记事本打开.py文件,”另存为“可以看到用的是什么编码。 ba21 发表于 2023-3-25 19:14
那应该是你.py文件编码问题 吧。
使用记事本打开.py文件,”另存为“可以看到用的是什么编码。
utf-8 从你的描述和所提供的错误信息来看,这个问题似乎是由于 pgzrun 和普通运行方式在处理窗口标题编码时的差异导致的。
首先需要了解的是,Python 3 默认使用的编码是 UTF-8,因此在源代码中直接使用中文字符串是没有问题的。
然而,在使用 pgzrun 运行时,似乎它不能很好地处理非ASCII字符的窗口标题。
为了解决这个问题,可以考虑将窗口标题转换为包含 Unicode 转义序列的字符串。
这样可以避免由于编码问题导致的乱码。试着将你的标题设置为如下格式:
TITLE = '跑酷'
TITLE_UNICODE = TITLE.encode('unicode_escape').decode('utf-8')
然后在程序中使用 TITLE_UNICODE 作为窗口标题。这样做应该可以在两种运行方式下都显示正确的中文标题。
此外,关于你尝试的解决方案:
TITLE = '跑酷'.encode().decode('utf-8')
这里你首先对字符串进行了编码,然后立即对其进行了解码。由于默认编码和解码都是 UTF-8,这样做实际上没有改变原始字符串。 歌者文明清理员 发表于 2023-3-25 19:07
不靠谱。
看看我的机器人助手靠不靠谱{:10_256:} 本帖最后由 歌者文明清理员 于 2023-3-25 19:57 编辑
isdkz 发表于 2023-3-25 19:21
看看我的机器人助手靠不靠谱
不靠谱。
显示https://t1.wodetu.cn/2023/03/25/f626270584dbfc787805f6cfff503e09.png 歌者文明清理员 发表于 2023-3-25 19:15
utf-8
事实证明 pgzrun 只能识别ANSI编码
在.py前面指定编码即可。
#!/usr/bin/python
# -*- coding: ANSI -*- ba21 发表于 2023-3-25 19:54
事实证明 pgzrun 只能识别ANSI编码
在.py前面指定编码即可。
不行,只显示\u...\u...-pgzero 歌者文明清理员 发表于 2023-3-25 19:55
不行,只显示%u...%u...-pgzero
还能显示这样,你不查查自已出了什么问题?
简单问题简单代码调试。
ba21 发表于 2023-3-25 20:04
还能显示这样,你不查查自已出了什么问题?
简单问题简单代码调试。
还是不行
哇,WINDOWS XP!求之不得 歌者文明清理员 发表于 2023-3-25 20:06
还是不行
哇,WINDOWS XP!求之不得
奇怪了,为什么我运行不乱码? 歌者文明清理员 发表于 2023-3-25 19:53
不靠谱。
显示
看来我的助手还得再调教调教{:10_256:}
页:
[1]