ZWNJ在python 3.3中未正确显示
我试图用ZWNJ替换用阿拉伯语字母书写的两个标记之间的空格,但函数返回的内容在屏幕上没有正确解码:ZWNJ在python 3.3中未正确显示,python,unicode,normalization,python-3.3,unicode-normalization,Python,Unicode,Normalization,Python 3.3,Unicode Normalization,我试图用ZWNJ替换用阿拉伯语字母书写的两个标记之间的空格,但函数返回的内容在屏幕上没有正确解码: >>> nm.normalize("رشته ها") 'رشته\u200cها' \u200应该被渲染成半个空间,放在这里的“شته”和“ها”之间,但它会像那样搞砸。我使用的是Python 3.3.3函数返回了一个字符串对象,其中包含\u200c字符,但Python向您展示了表示形式。\uxxx语法用于使表示作为调试值变得有用,现在您可以复制该表示并将其粘贴回Python
>>> nm.normalize("رشته ها")
'رشته\u200cها'
\u200应该被渲染成半个空间,放在这里的“شته”和“ها”之间,但它会像那样搞砸。我使用的是Python 3.3.3函数返回了一个字符串对象,其中包含\u200c
字符,但Python向您展示了表示形式。\uxxx
语法用于使表示作为调试值变得有用,现在您可以复制该表示并将其粘贴回Python并获得完全相同的值
换句话说,该功能完全按照广告所宣传的那样工作;空间确实被一个代码点所取代
如果要将字符串写入终端或控制台,请使用print()
:
演示:
您可以看到,这里的字符5(索引4)是单个字符,而不是6个单独的字符。ZWNJ不是半个空格,而是一个零宽度控制字符,用于防止连字行为。由此产生的任何间距都是由于相关字形的设计。
print(nm.normalize("رشته ها"))
>>> result = 'رشته\u200cها'
>>> len(result)
7
>>> result[4]
'\u200c'
>>> print(result)
رشتهها