cbo*_*tig 6 string text r utf-8
我有以下向量:
x <- list("Chamberlain", "\"Roma\\u00F1ach\"", "<node>")
Run Code Online (Sandbox Code Playgroud)
我想将它转换为带有UTF-8替换的unicode字符的向量,如下所示:
goal <- list("Chamberlain", "Romañach", "<node>")
Run Code Online (Sandbox Code Playgroud)
去掉的字符串导致问题.如果是第二个字符串:
wouldbenice <- "Roma\u00F1ach"
Run Code Online (Sandbox Code Playgroud)
然后enc2native(wouldbenice)会做正确的事情.(或lapply(x, enc2native)整个字符串.
我可以在UTF-8中正确显示第二个字符串:
# displays "Romañach"
eval(parse(text = x[[2]]))
Run Code Online (Sandbox Code Playgroud)
但是,这会很糟糕(抛出解析错误)x[1]和x[2].如何可靠地将整个列表解析为适当的编码?
使用stringi包.
从stringi使用stri_replace_all_regex的更换和stri_unescape_unicode反转义Unicode的符号.
library(stringi)
x <- list("Chamberlain", "\"Roma\\u00F1ach\"", "<node>")
removed_quotes <- stri_replace_all_regex(x, "\"", "")
unescaped <- stri_unescape_unicode(removed_quotes)
# [1] "Chamberlain" "Romañach" "<node>"
Run Code Online (Sandbox Code Playgroud)