在 R 中用 `space` 替换 `Zero Width No-Break Space`
Replacing `Zero Width No-Break Space` with `space` in R
我想在使用 R
的 Persian 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").
我想在使用 R
的 Persian 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").