【发布时间】:2020-06-30 01:58:43
【问题描述】:
我正在尝试在我的代码中使用希伯来语字符。但我的终端(CMD)不支持希伯来语,而是只显示随机问号。 例如:
>>>Print("דוגמא")
结果:?????\
编辑:CMD 控制台在其默认字体中根本没有希伯来字母。您可以简单地更改字体以显示希伯来语。
【问题讨论】:
标签: python python-3.x cmd character-encoding hebrew
我正在尝试在我的代码中使用希伯来语字符。但我的终端(CMD)不支持希伯来语,而是只显示随机问号。 例如:
>>>Print("דוגמא")
结果:?????\
编辑:CMD 控制台在其默认字体中根本没有希伯来字母。您可以简单地更改字体以显示希伯来语。
【问题讨论】:
标签: python python-3.x cmd character-encoding hebrew
这将影响命令 (CMD) 控制台。
打开 regedit.exe 并导航到此位置:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
有时您会看到名为0 和00 的两个值。添加第三个字符串值并将其命名为:000(三次为零)。
在这个新的000 字符串值中,在值数据字段中输入Courier New(区分大小写)。
现在打开 Powershell(这也适用于 CMD)并转到 properties:左键单击左上角的 Powershell 图标并选择 properties。
转到Font 选项卡并选择Courier New 字体:
现在,当您切换到希伯来语写作时,您应该会看到希伯来语(向后视图)。例如,这使您可以从脚本发送输出希伯来语写作。
【讨论】:
# -*- coding: utf-8 -*- 在 Python 3 中不是必需的。
我有一个解决方案。 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))```
【讨论】: