我有一个似乎包含特殊€
字符的字符串:
my_str # [1] "0€ de frais de courtage"
my_str == "0€ de frais de courtage" # [1] FALSE
gsub("€","X",my_str) # [1] "0€ de frais de courtage"
gsub("€","X","0€ de frais de courtage") # [1] "0X de frais de courtage"
我想用标准€
字符替换它,即我可以用Alt-gr + E
键入的字符。
这些字符串来自我使用list.files
我该怎么做?
编辑:
utf8ToInt(my_str)
# [1] 48 8364 32 100 101 32 102 114 97 105 115 32 100 101 32 99 111 117 114 116 97 103 101
utf8ToInt(stringi::stri_enc_toutf8("0€ de frais de courtage"))
# [1] 48 128 32 100 101 32 102 114 97 105 115 32 100 101 32 99 111 117 114 116 97 103 101
答案 0 :(得分:0)
字符串看起来相同,但€
字符不同。
在帖子底部的我的编辑中,我们发现常规€
的代码为128
,而麻烦€
的代码为8364
。< / p>
果然:
gsub(intToUtf8(8364),"X",my_str) # [1] "0X de frais de courtage"
所以我正在寻找的解决方案是:
gsub(intToUtf8(8364),"€",my_str)
它将“错误的”€
字符替换为“常规”128
azerty alt gr + E
€
符号。