如何在 Scite 中使用 Python 3.7 打印 Daiski?

How to print ダイスキ using Python 3.7 in Scite?

我正在使用启用了 utf-8 输出的 Win10 和 Scite window。 文件保存为带 BOM

的 UTF-8

脚本:

print('ダイスキ from python 3')

脚本可以在 cmd prompt 上 运行 而不会出错。但是当 运行 on Scite 时会产生错误:

输出:

>pythonw.exe -u "test.py"
Traceback (most recent call last):
  File "test.py", line 12, in <module>
    print('\u30c0\u30a4\u30b9\u30ad from python 3')
  File "D:\BIN\Python37\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 1-2: character maps to <undefined>
>Exit code: 1

如何在 Scite 中使用 python3 将 ダイスキ 正确打印到标准输出?


更新:

我编辑了 Scite 全局选项文件,以支持 utf-8。

code.page=65001

我测试了 C,Lua,旧的 Python 2.7,它可以打印 utf-8 字符串(在 Scite 输出 window 上)。

似乎是 Scite 配置错误或可能是 Scite 错误,因为 Scite 输出终端 window 适用于 Lua & C,但仅在 Python3 上失败。

尝试这样做:

print(u'ダイスキ')

Scite 涉及 popen() / 管道 STDOUT。

Python 3.7 需要手动设置环境变量"PYTHONIOENCODING"。所以需要添加环境变量 "PYTHONIOENCODING" 设置为 "utf_8"

结果: