使用CMD终端时Python无法显示希伯来语

When using CMD terminal Python can't display Hebrew

我正在尝试在我的代码中使用希伯来语字符。但我的终端 (CMD) 不支持希伯来语,而是只显示随机问号。 例如:

>>>Print("דוגמא")

结果:?????\

编辑:CMD 控制台的默认字体中根本没有希伯来字母。您只需更改字体即可显示希伯来语。

This will affect the Command (CMD) console.

  1. 打开 regedit.exe 并导航到此位置:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont

  2. 有时您会看到两个名为 000 的值。添加第三个字符串值并将其命名为:000(零三次)。

  3. 在这个新的 000 字符串值中,在值数据字段中输入 Courier New(区分大小写)。

  4. 现在打开 Powershell(这也适用于 CMD)并转到 properties:左键单击左上角的 Powershell 图标和 select properties

  5. 转到 Font 选项卡并 select Courier New 字体:

现在当你切换到希伯来语书写时你应该看到希伯来语(向后视图)。例如,这使您能够从脚本发送输出希伯来语写作。

我有办法。 Change console font in Windows 那里有一个代码可以更改字体。我发现它也适用于 CMD 通常不支持的字体。

根据回答:

import ctypes

LF_FACESIZE = 32
STD_OUTPUT_HANDLE = -11

class COORD(ctypes.Structure):
    _fields_ = [("X", ctypes.c_short), ("Y", ctypes.c_short)]

class CONSOLE_FONT_INFOEX(ctypes.Structure):
    _fields_ = [("cbSize", ctypes.c_ulong),
                ("nFont", ctypes.c_ulong),
                ("dwFontSize", COORD),
                ("FontFamily", ctypes.c_uint),
                ("FontWeight", ctypes.c_uint),
                ("FaceName", ctypes.c_wchar * LF_FACESIZE)]

font = CONSOLE_FONT_INFOEX()
font.cbSize = ctypes.sizeof(CONSOLE_FONT_INFOEX)
font.nFont = 12
font.dwFontSize.X = 11
font.dwFontSize.Y = 18
font.FontFamily = 54
font.FontWeight = 400
font.FaceName = "Lucida Console"

handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
ctypes.windll.kernel32.SetCurrentConsoleFontEx(
        handle, ctypes.c_long(False), ctypes.pointer(font))```