json - R 不显示来自 json 源的特殊字符

标签 json r windows utf-8 jsonlite

稍微介绍一下背景。 我从提供公共(public)交通数据的 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"

在我看来,到目前为止这看起来不错,但是我仍然看不到特殊字符。

我很感激关于这个主题的任何建议和想法。

问候

最佳答案

所以我终于明白了。 感谢@parth,它让我找到了正确的答案。 我在 fromJSON 语句之前使用了 Encoding,这对我有用。

  resp <- GET(url = url)

  resp_char <- rawToChar(resp$content)
  Encoding(resp_char) <- "UTF-8"
  parsed <- fromJSON(resp_char, flatten = T)

  parsed.df <- do.call(what = "rbind", args = lapply(parsed[1], as.data.frame))

关于json - R 不显示来自 json 源的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46114449/

相关文章:

json - 为元组序列 Play Scala Json Writer

r - 修改和拆分 R 数据框中的行名称

c# - 在 C# 中解析 JSON 数组

php - 解码 php 不工作

r - 使用 purrr 映射将函数应用于 dplyr 管道中 DataFrame 中列的选择

html - XPath 1.0 表达式返回 NULL

windows - 所有 Cygwin 应用程序的启动速度都非常慢

windows -/var/www/html/myanants/lib/Cake/Error/ErrorHandler.php 中给出的 ParseError 实例

python - IO错误 : [Errno url error] invalid proxy for http: 'xxx.xxx.xxx.xxx'

javascript - 如何清空数组?