用Python(x,y)打印阿拉伯语unicode字符串

2024-09-24 22:25:37 发布

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

我有一个阿拉伯文unicode字符串,我想用Python(在windows7上使用Python(x,y))打印出来,但是我无法打印它,只打印出unicode表示形式。在

字符串定义为:

ss = u'\u0647\u0630\u0627 \u0647\u0648 \u0627\u0644\u062d\u0644 \u0627\u0644\u0648\u062d\u064a\u062f \u0644\u0644\u0645\u0634\u0643\u0644\u0629 \u0627\u0644\u062a\u064a \u0646\u0648\u0627\u062c\u0647\u0647\u0627'

应该是这样的:“هذا

当我尝试print时,它给出以下错误

^{pr2}$

当我编码字符串时,比如用cp1256(Windows阿拉伯语),它给出了一个错误的表示:

print ss.encode('cp1256')
åÐÇ åæ ÇáÍá ÇáæÍíÏ ááãÔßáÉ ÇáÊí äæÇÌååÇ

我在这里已经讨论了几个与在Windows上从Python打印unicode有关的问题,但是似乎没有任何工作。在

有什么想法吗?在

谢谢。在

更新: 我使用的是Spyder IDE(在Windows7上与Python(x,y)捆绑在一起)。在

更新2: 我已经尝试过“重复”问题中的所有解决方案,但都没有奏效。在


Tags: 字符串windows错误unicodess形式printwindows7
1条回答
网友
1楼 · 发布于 2024-09-24 22:25:37

您的控制台配置为显示代码页1252(拉丁语1),它确实无法处理您的代码点。将您的控制台切换到另一个可以显示字符的代码页。在

你可以切换到1256:

chcp 1256

或者切换到65001(UTF-8代码页),它应该能够处理任何unicode代码点。不过,您可能需要切换主机使用的字体;据报道,lucidasans显示了大部分Unicode。在

相关问题 更多 >