【问题标题】:R Wrong encoding in Rstudio console (but ok in R GUI and ggplot2)R Rstudio 控制台中的错误编码(但在 R GUI 和 ggplot2 中可以)
【发布时间】:2013-11-22 22:03:35
【问题描述】:

我在 Windows 8.1 (en) 上,我的 R 控制台无法理解俄语字符并产生这样的东西(无论是在控制台中还是在我运行 R 文件时)

> x <- "Привет"
> print(x)
[1] "Ïðèâåò"

我知道如果您将 CP1251 保存为 CP1252,就会发生这种情况。我将所有 R 选项设置为 UTF-8,并将源文件设置为 UTF-8,但这无济于事。我还将 sysLocale 设置为俄语为here,但一无所获。 RStudio faq 的一些建议也没有帮助。奇怪的是,ggplot2 工作得非常好

dt <- as.data.frame(cbind(x = c("Один", "Два"), y = c(3, 5)))
ggplot(dt, aes(x=x, y=y))+geom_bar() + xlab("Счет")

这是我的 sessionInfo()

R version 3.0.2 (2013-09-25)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=Russian_Russia.1251  LC_CTYPE=Russian_Russia.1251    LC_MONETARY=Russian_Russia.1251 LC_NUMERIC=C                   
[5] LC_TIME=Russian_Russia.1251    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

我使用的是最新版本的 RStudio,但开发版也无济于事

更新

> Encoding(x)
[1] "unknown"
> getOption("encoding")
[1] "native.enc"

如果我使用 RGUI,在Sys.setlocale("LC_ALL", "Russian") 之后它将允许

> print(x)
[1] "Привет"

我还检查了俄语版本的 Windows - Rstudio 工作正常

【问题讨论】:

  • 这不是什么大问题,但我用俄语生成 knitr 报告,一切都搞砸了
  • 是 LaTeX 的问题吗? stackoverflow.com/a/11217621/322912
  • 这听起来像是 RStudio 论坛的一个好问题...
  • 明天会重新发布,谢谢你的想法。这不是 Latex 问题 - 控制台也没有工作我想这更多是 Windows 问题(
  • 您能否在您的 RStudio 控制台中尝试以下操作:intToUtf8(seq(1072,,1,30),multiple=T)

标签: r encoding rstudio


【解决方案1】:
Sys.setlocale("LC_ALL", "Russian_Russia.1252")

解决了我的问题。

【讨论】:

    【解决方案2】:
    Sys.setlocale("LC_ALL", "Russian")
    

    不适合我。

    Sys.setlocale("LC_CTYPE", "en_RU.UTF-8")
    

    完成了任务!现在带有西里尔字符的 utf 文件可以在 R/RStudio 控制台中正确显示。 但这似乎只在 R 或 RStudio 重新启动之前有效。

    还有,正在运行

    defaults write org.R-project.R force.LANG en_US.UTF-8
    

    在 OS X 终端中解决了我所有使用非拉丁字符的问题。

    【讨论】:

      猜你喜欢
      • 2018-03-25
      • 2015-06-09
      • 2012-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-18
      相关资源
      最近更新 更多