Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何轻松地用rvest友好的UTF-8(十六进制)替换特殊字符_R_Unicode_Encoding_Utf 8_Rvest - Fatal编程技术网

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

如何轻松地用rvest友好的UTF-8(十六进制)替换特殊字符,r,unicode,encoding,utf-8,rvest,R,Unicode,Encoding,Utf 8,Rvest,我需要用诸如%C3%A9、%C3%A2之类的字符串替换特殊字符,如é和–。这是因为带有特殊字符的url将在浏览器中工作,但不适用于R的rvest::read_html()函数-它需要“%C3%A9”样式的字符串来代替特殊字符 目前,我必须等待,直到由于url中存在特殊字符而出现错误,然后我必须手动查找特殊字符的等效值,然后gsub它: list_of_urls %>% gsub("é", "%C3%A9", .) %>% gsu

我需要用诸如%C3%A9、%C3%A2之类的字符串替换特殊字符,如é和–。这是因为带有特殊字符的url将在浏览器中工作,但不适用于R的
rvest::read_html()
函数-它需要“%C3%A9”样式的字符串来代替特殊字符

目前,我必须等待,直到由于url中存在特殊字符而出现错误,然后我必须手动查找特殊字符的等效值,然后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”

utils
URLencode
怎么样?下面是它在您的示例中的工作原理:

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

如果您只想要单词的非重音版本,可以使用iconv(yourstrings,to=“ASCII//TRANSLIT”),或者
stringi
软件包提供了大量编码帮助,这些帮助可能会以任何方式帮助您。你应该用可以复制的例子更新你的问题,否则很难帮助你。谢谢:)我已经包括了一些例子。至于stringi,我尝试了两个stringi函数,但都无法运行(完全可能是我没有正确地应用它们),对于您的两个编码调用,我得到了[1]“gla%C3%A7age”和[1]“caf%C3%A9”。在当前R版本的Mac上。只需在R和RStudio中的3.4.3和3.4.4上再次运行命令,即可获得与上面相同的结果。btwn操作系统的编码有区别吗?我还没听说过。。。有趣。温多泽在编码方面经常是个怪人。
> URLencode("café")
[1] "caf%E9"