将\ u转义的Unicode字符串转换为ASCII

sea*_*ody 11 unicode text-processing r unicode-string iconv

阅读所有关于后iconvEncoding,我仍然感到困惑.

我正在抓取网页的来源我有一个如下所示的字符串:( 'pretty\u003D\u003Ebig'在R控制台中显示'pretty\\\u003D\\\u003Ebig').我想将其转换为ASCII字符串,应该是'pretty=>big'.

更简单,如果我设置

x <- 'pretty\\u003D\\u003Ebig'
Run Code Online (Sandbox Code Playgroud)

如何进行转换x以获得收益pretty=>big

有什么建议?

had*_*ley 9

使用解析,但不评估结果:

x1 <- 'pretty\\u003D\\u003Ebig'
x2 <- parse(text = paste0("'", x1, "'"))
x3 <- x2[[1]]
x3
# [1] "pretty=>big"
is.character(x3)
# [1] TRUE
length(x3)
# [1] 1
Run Code Online (Sandbox Code Playgroud)

  • `as.character(x2)` 也可以工作并且将被矢量化(即:`as.character(parse(text=paste0("'",rep(x1,3), "'")))`)。另外,`shQuote(x1)` 也可以代替 `paste0` 更方便。 (2认同)

Sté*_*ent 6

stringi包裹:

> x <- 'pretty\\u003D\\u003Ebig'
> stringi::stri_unescape_unicode(x)
[1] "pretty=>big"
Run Code Online (Sandbox Code Playgroud)