Unicode文本未打印到Python控制台/终端/屏幕

2024-06-10 13:36:18 发布

您现在位置:Python中文网/ 问答频道 /正文

试图用Python(Torah)的一些文本来解析Python(希伯来语)文本。在

这里是我使用的示例文本(创世记)的链接Sefaria.org网站: https://github.com/Sefaria/Sefaria-Export/blob/master/json/Tanakh/Torah/Genesis/Hebrew/Tanach%20with%20Text%20Only.json

我能够成功导入JSON数据。在

我使用PRINT()执行通常的数据提取测试+测试输出来检查数据。在

在下面的代码中,我注意到只有键的输出保留在屏幕/终端/控制台上。所有其他数据(值、项和字典键“text”的值)都将从屏幕上消失(请使用这些数据运行代码,并亲自查看)。在

我认为这是某种编码或解码问题,因为任何文本都带有希伯来语文本(例如,值、项和字典键“text”的值),因此我进行了标准sys检查并打印了以下输出:

sys.stdin.encoding =  cp1252
sys.stdout.encoding =  cp1252

我想我可能需要定义/编码/解码或做一些事情来允许UTF-8unicode字符(希伯来语)的书面输出到Python终端。在

有什么办法解决这个问题吗?在

^{pr2}$

编辑

我只是做了一个测试来测试一行Unicode希伯来语的简单打印。下面是代码,它完美地将输出打印到Python屏幕/终端/控制台。因此,问题仍然存在:为什么从上面的字典中提取的值在打印到屏幕后会消失(请尝试用数据编写代码,自己看看!)?在

x = "בראשית ברא אלהים את השמים ואת הארץ"
print("x = ",x)

Tags: 数据代码text文本json终端编码字典
1条回答
网友
1楼 · 发布于 2024-06-10 13:36:18

这可能不是因为您的编码,因为python 3使用utf-8作为默认值。在

更可能的问题是您的控制台使用的字体consolas,它不支持希伯来语。在

更改为类似courier new的字体以在控制台中显示希伯来语字符。在


在windows上-只需点击窗口顶部的图标(如果您的窗口是希伯来语,则应为左上角或右上角)。在

然后点击properties(属性)并选择您想要的字体(我推荐courier new)。在

编辑

问题似乎是在文本中使用\u05be(מקף)字符。加载文件时,我尝试了以下操作,它正常工作:

json_data = open('DATA_1GENESIS.json', encoding="utf8").read().replace('\u05be', '')

相关问题 更多 >