IDLE 3.8.4 和 3.9.0b4 不会保存 non-ascii 个字符的文件

IDLE 3.8.4 and 3.9.0b4 won't save files with non-ascii characters

编辑:在 iomenu.py 中添加“import io”确实解决了这个问题。非常感谢特里!

原文: 正如标题所说:我正在使用 IDLE (Windows) 在 python 中编写脚本,但它不会保存(ctrl+s、手动保存或退出时保存)。它不会冻结或崩溃,只是不会保存(我可以通过 windows 标题上文件名前的 * 来判断)。 经过一些尝试后,我意识到只有当我在文本中使用带有变音符号的字母时才会发生这种情况(我是法国人,所以它会是 éèêàç...)。一旦我改变了字母,我就可以再次保存,因此 运行 脚本。 记事本或 python shell 仍然可以正常工作。

不起作用的东西:

我十天前才开始编码,所以我还是个新手,但我想这与编码有关? 它可能与新的 3.8.4 更新有关,因为直到今天它都运行良好。 我正在研究 Windows 10 64 位。

谢谢!

要么 a) 将 import io 添加到 <pythondir>/idlelib/iomenu.py 的顶部,要么 b) 获取今天发布的 3.8.5,修复了 3.8.4 中的多个问题,包括这个问题。同样的答案适用于同样在今天发布的 3.9.0b4 和 3.9.0b5。

编辑:在 3.8.5 和 3.9.0b5 中,当编辑在 IDLE 之外创建的文件时,还有一个关于保存失败和行结束的问题。 iomenu.py,第 251 行,当前

    if self.eol_convention != "\n":

改为

    if isinstance(self.eol_convention, str) and self.eol_convention != "\n":

编辑 2:最近发布的 3.8.6 和 3.9.0 解决了这两个问题。