R API请求后特殊字符显示错误

时间:2018-11-23 16:03:14

标签: r json string api encoding

这是我最后一个问题here的跟进。我目前正在使用online database中的数据。我通过API访问数据,该API与以下代码一起使用:

#-------------------------------#
#          packages             #
#-------------------------------#
library(httr)
library(jsonlite)

#-------------------------------#
#         API request           #
#-------------------------------#

# build query
myquery <- '{
  "filter": {"BAS.REFYEAR.v": 2015, "BAS.COUNTRY.v": "LV"},
  "fieldIds": {},
  "searchTerms": []
  }'

url <- "https://www.eter-project.com/api/3.0/HEIs/query"

raw_result <- POST(url, body = myquery, content_type_json())

#-------------------------------#
#       data processing         #
#-------------------------------#

# translate Unicode into text
this.raw.content <- rawToChar(raw_result$content) 

# transform json into workable format for R
mydata <- fromJSON(this.raw.content, flatten = TRUE) 

现在查看数据集中的HEI名称时,我发现许多特殊字符未以正确的方式显示,可以通过执行mydata$BAS.INSTNAME[28:44]

this post的启发,我使用stringi-package来查看编码(stri_enc_mark(mydata$BAS.INSTNAME)),这表明它是ASCII和UTF-8编码的混合体。当我从数据中下载.csv文件并将其导入到R(正确显示名称)时,这是完全相同的。因此,我认为错误一定在其他地方。我的猜测是,它发生在使用rawToChar的unicode->文本转换中。

任何帮助将不胜感激!

0 个答案:

没有答案