在 R 中用 `space` 替换 `Zero Width No-Break Space`

Replacing `Zero Width No-Break Space` with `space` in R

我想在使用 RPersian text 中用 space 替换 Zero Width No-Break Space。 我根据 this link.

使用了这样的代码
testAdrs<-"خيابان‌ مولوي‌نرسيده‌به‌قيام‌"
testAdrs<-gsub('\xef\xbb\xbf',' ',testAdrs)

我希望我的 testAdrs"خيابان‌ مولوي‌ نرسيده‌ به‌ قيام‌",但是 我的字符串没有变化。

有什么问题?

当我在我的终端上检查你的文本 'خيابان‌ مولوي‌نرسيده‌به‌قيام‌' 时,我得到:

>>> خيابان\U+200C مولوي\U+200Cنرسيده\U+200Cبه\U+200Cقيام\U+

并在 python shell 中将所有这些字符转换为十六进制,我得到:

>>> binascii.unhexlify(binascii.hexlify(u"خيابان\U+200C مولوي\U+200C نرسيده\U+200C به\U+200C قيام\U+200C".encode('utf-16'))).decode('utf-16')
u'\u062e\u064a\u0627\u0628\u0627\u0646\u200c \u0645\u0648\u0644\u0648\u064a\u200c \u0646\u0631\u0633\u064a\u062f\u0647\u200c \u0628\u0647\u200c \u0642\u064a\u0627\u0645\u200c'

你会看到上面程序的输出中没有\ufeff("ZERO WIDTH NO-BREAK SPACE")。另一个证明是 here 你会看到 ǎ 很容易被匹配但是不存在 \x{feff}

因此,您的问题是您的字符串中没有 "ZERO WIDTH NO-BREAK SPACE"。我想您要替换的 space 可能是 this one \u200C("ZERO WIDTH NON-JOINER").