如何编码重音以在 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"
。
我在法语维基百科的 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"
。