如何使用rvest友好的UTF-8(十六进制)轻松替换特殊字符。

时间:2018-04-07 15:00:52

标签: r unicode encoding utf-8 rvest

我需要用像%C3%A9,%C3%A2这样的字符串替换像é和â这样的特殊字符。这是因为具有特殊字符的网址可以在浏览器中使用,但不能使用R的rvest::read_html()功能 - 它需要使用“%C3%A9”样式字符串代替特殊字符。

目前,我不得不等到因为网址中有特殊字符而导致错误,然后我必须手动查找特殊字符的等效值here,然后gsub它:

  list_of_urls %>% 
  gsub("é", "%C3%A9", .) %>% 
  gsub("â", "%C3%A2", .) %>% 
  gsub("ç", "%C3%A7", .) %>% 
  gsub("á", "%C3%A1", .)

是否有一个R函数自动为所有特殊字符执行此操作(即没有单个字符的所有gsub)?

例如,字符串“glaçage”应该变为“gla%C3%A7age”

字符串“café”应该变成“caf%C3%A9”

1 个答案:

答案 0 :(得分:1)

URLencode中的utils怎么样?以下是它的示例:

> library(utils)
> URLencode("glaçage")
[1] "gla%E7age"
> z <- URLencode("glaçage")
> URLdecode(z)
[1] "glaçage"

第二个例子:

> URLencode("café")
[1] "caf%E9"