特殊的欧元字符

时间:2017-09-05 12:47:50

标签: r regex euro

我有一个似乎包含特殊字符的字符串:

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

1 个答案:

答案 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 符号。