如何编码重音以在 R 中查询 Mediawiki API?

How to encode accents to query Mediawiki API in R?

我在法语维基百科的 Mediawiki API 中查询没有重音符号的字符串没有问题:

string <- 'chien'
string <- stringi::stri_enc_toutf8(string, is_unknown_8bit = FALSE, validate = FALSE)
apiQuery <- paste0('https://fr.wikipedia.org/w/api.php?action=query&format=xml&titles=', string)
page <- xml2::read_xml(apiQuery)

{xml_document} [1] \n \n \n \n \n <page _idx="2736914" pageid="2736914 ...

但我对带有重音符号的字符串有疑问:

string <- 'être'
string <- stringi::stri_enc_toutf8(string, is_unknown_8bit = FALSE, validate = FALSE)
apiQuery <- paste0('https://fr.wikipedia.org/w/api.php?action=query&format=xml&titles=', string)
page <- xml2::read_xml(apiQuery)

我收到以下错误:

Error in open.connection(x, "rb") : HTTP error 400.

您需要在 HTML 转义中对查询进行编码:

page <- xml2::read_xml(URLencode(apiQuery))

这会将 "ê" 更改为 "%C3%AA"