当我在R中键入"\xfc"时,它会导致[1] "ü"。我不想要那个,我希望它导致[1] "\xfc"。尽管我将“代码”->“保存”中的设置更改为UTF-8,但我也不太明白为什么Encoding("\xfc")"latin1"。我想编写一个函数,将某些特殊字符(如"ü"替换为"\xfc"),但无法实现:

> stringr::str_replace_all("Müller", "ü", "\xfc")
[1] "Müller"
> stringr::str_replace_all("Müller", "ü", "\\xfc")
[1] "Mxfcller"
> stringr::str_replace_all("Müller", "ü", "\\\xfc")
[1] "Müller"
> stringr::str_replace_all("Müller", "ü", "\\\\xfc")
[1] "M\\xfcller"


我真正想要的是[1] "M\xfcller"

(如何)可以实现?

最佳答案

最后一行给出您想要的结果。打印字符串时,反斜杠转义。为此,我们将字符串保存到文件中,然后查看文件的内容。


s <- stringr::str_replace_all("Müller", "ü", "\\\\xfc")

writeLines(s, "test.txt")

cat(readLines("test.txt"))
#> M\xfcller


reprex package(v0.2.1)创建于2019-03-27

另请参阅以下GitHub问题:https://github.com/STAT545-UBC/Discussion/issues/394

关于r - 如何获取特殊字符的原始HTML数字表示形式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55372670/

10-12 14:04