我试图用ZWNJ替换用阿拉伯字母写的两个令牌之间的空格,但是函数返回的内容在屏幕上没有正确解码:
>>> nm.normalize("رشته ها")
'رشته\u200cها'
\ u200应该呈现为半空间,可以放在'رشته'和'ها'之间,但它会像这样混乱。我使用的是Python 3.3.3
答案 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个单独的字符。