我想使用Zero Width No-Break Space
在space
中将Persian text
替换为R
。
我根据this link使用了这样的代码。
testAdrs<-"خيابان مولوينرسيدهبهقيام"
testAdrs<-gsub('\xef\xbb\xbf',' ',testAdrs)
但我希望testAdrs
与"خيابان مولوي نرسيده به قيام"
相似
我的字符串没有变化。
问题是什么?
答案 0 :(得分:2)
当我在终端上检查你的文字'خيابان مولوينرسيدهبهقيام'
时,我得到了:
>>> خيابان\U+200C مولوي\U+200Cنرسيده\U+200Cبه\U+200Cقيام\U+
并将所有这些字符转换为python shell中的hex,我得到了:
>>> 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”。我想你要替换的空间可能是this one \u200C
(“ZERO WIDTH NON-JOINER”)。