我正在尝试用 ZWNJ 替换用阿拉伯字母书写的两个标记之间的空格,但函数返回的内容在屏幕上未正确解码:
>>> nm.normalize("رشته ها")
'رشته\u200cها'
\u200 应该被渲染为一个半空间,将放置在 'رشته' 和 'ها' 之间,但它会像那样搞砸。我正在使用 Python 3.3.3
我正在尝试用 ZWNJ 替换用阿拉伯字母书写的两个标记之间的空格,但函数返回的内容在屏幕上未正确解码:
>>> nm.normalize("رشته ها")
'رشته\u200cها'
\u200 应该被渲染为一个半空间,将放置在 'رشته' 和 'ها' 之间,但它会像那样搞砸。我正在使用 Python 3.3.3
该函数返回一个字符串对象,其中包含\u200c
字符,但 Python 向您显示了表示形式。该\uxxxx
语法用于使表示作为调试值有用,您现在可以复制该表示并将其粘贴回 Python 并获得完全相同的值。
换句话说,该功能与宣传的完全一样;该空间确实被U+200C 零宽度非连接代码点所取代。
如果您想将字符串写入终端或控制台,请使用print()
:
print(nm.normalize("رشته ها"))
演示:
>>> result = 'رشته\u200cها'
>>> len(result)
7
>>> result[4]
'\u200c'
>>> print(result)
رشتهها
您可以看到字符 5(索引 4)在这里是单个字符,而不是 6 个单独的字符。