【发布时间】:2017-09-08 10:31:54
【问题描述】:
关于背景的一点点。 我从提供公共交通数据的 API 中提取数据。它以 json 格式返回结果,我使用库 'jsonlite' 进行处理。
resp <- GET(url = url)
resp_char <- rawToChar(resp$content)
parsed <- fromJSON(resp_char, flatten = T)
parsed.df <- do.call(what = "rbind", args = lapply(parsed[1], as.data.frame))
问题是,结果中没有特殊字符。
我正在使用 Windows Server 2012 机器,我在 R 中的语言设置如下所示:
> Sys.getlocale()
[1] "LC_COLLATE=German_Germany.1252;LC_CTYPE=German_Germany.1252;LC_MONETARY=German_Germany.1252;LC_NUMERIC=C;LC_TIME=German_Germany.1252"
例子:
> df$direction
"U Alt-Mariendorf (Berlin)"
"U Alt-Tegel (Berlin)"
"U Alt-Mariendorf (Berlin)"
"U Alt-Tegel (Berlin)"
"Märkisches Viertel, Wilhelmsruher Damm"
第五个结果的预期结果是“Märkisches Viertel, Wilhelmsruher Damm”
之后我查看了实际的编码。
> Encoding(df$direction)
[1] "unknown" "unknown" "unknown" "unknown" "UTF-8"
到目前为止,我认为这看起来不错,但是我看不到特殊字符。
感谢您对此主题的任何建议和想法。
问候
【问题讨论】:
-
你试过这个功能
iconv吗? -
是的,我试过了。这就是结果 > iconv(tmpStore2$direction,to ="UTF8") [1] "U Alt-Mariendorf (Berlin)" "U Alt-Tegel (Berlin)" "U Alt-Mariendorf (Berlin)" [4] “U Alt-Tegel(柏林)”“Märkisches Viertel,Wilhelmsruher Damm”
标签: json r windows utf-8 jsonlite