ZWNJ在python 3.3中没有正确显示

时间:2014-07-13 12:44:29

标签: python unicode normalization python-3.3 unicode-normalization

我试图用ZWNJ替换用阿拉伯字母写的两个令牌之间的空格,但是函数返回的内容在屏幕上没有正确解码:

>>> nm.normalize("رشته ها")
'رشته\u200cها'

\ u200应该呈现为半空间,可以放在'رشته'和'ها'之间,但它会像这样混乱。我使用的是Python 3.3.3

1 个答案:

答案 0 :(得分:1)

该函数返回一个字符串对象,其中包含\u200c字符,但Python会显示表示\uxxxx语法用于使表示作为调试值有用,您现在可以复制该表示并将其粘贴回Python并获得完全相同的值。

换句话说,函数完全按照宣传的方式工作;该空间确实被U+200C ZERO WIDTH NON-JOINER代码点所取代。

如果您想将字符串写入终端或控制台,请使用print()

print(nm.normalize("رشته ها"))

演示:

>>> result = 'رشته\u200cها'
>>> len(result)
7
>>> result[4]
'\u200c'
>>> print(result)
رشته‌ها

您可以在此处看到字符5(索引4)是单个字符,而不是6个单独的字符。