0

我正在尝试用 ZWNJ 替换用阿拉伯字母书写的两个标记之间的空格,但函数返回的内容在屏幕上未正确解码:

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

\u200 应该被渲染为一个半空间,将放置在 'رشته' 和 'ها' 之间,但它会像那样搞砸。我正在使用 Python 3.3.3

4

1 回答 1

1

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

换句话说,该功能与宣传的完全一样;该空间确实被U+200C 零宽度非连接代码点所取代。

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

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

演示:

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

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

于 2014-07-13T12:46:43.440 回答