词汇错误:UTF8字符串中的无效字节

时间:2019-02-11 09:14:27

标签: r jsonlite

我正在尝试使用下面显示的代码从json文件提取数据。 但是,返回以下错误:

Error: lexical error: invalid bytes in UTF8 string.
          fr":"Ces données sont publiées avec un délai de cinq jours
                     (right here) ------^

在浏览器中检查json文件后,数据显示如下:

"fr":"Ces donn\u00e9es sont publi�es avec un d\u00e9lai de cinq jours."

有没有一种方法可以在忽略任何导致错误的UTF8字符串的同时写入数据?

library(jsonlite)

URL <- paste0("https://www.energy-charts.de/power_unit/month_lignite_unit_2017_12.json")

data <- fromJSON(getURL(URL))

1 个答案:

答案 0 :(得分:0)

问题在于URL以latin1编码返回数据,并且您的系统默认将其读取为UTF-8。您可以使用

正确获取它
library(jsonlite)
library(RCurl)  

URL <- "https://www.energy-charts.de/power_unit/month_lignite_unit_2017_12.json"

data <- fromJSON(getURL(URL, encoding = "latin1"))

我还纠正了您的代码中的一些小错误:您忘记了请求RCurl,并且不需要paste0