R Rstudio控制台中的编码错误(但在R GUI和ggplot2中没问题)

RIn*_*atM 6 encoding r rstudio

我在Windows 8.1(en)和我的R控制台不会理解俄语字符并产生这样的smth(在控制台和我运行R文件时)

> x <- "??????"
> print(x)
[1] "Ïðèâåò"
Run Code Online (Sandbox Code Playgroud)

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

dt <- as.data.frame(cbind(x = c("????", "???"), y = c(3, 5)))
ggplot(dt, aes(x=x, y=y))+geom_bar() + xlab("????")
Run Code Online (Sandbox Code Playgroud)

这是我的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     
Run Code Online (Sandbox Code Playgroud)

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

更新:

> Encoding(x)
[1] "unknown"
> getOption("encoding")
[1] "native.enc"
Run Code Online (Sandbox Code Playgroud)

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

> print(x)
[1] "??????"
Run Code Online (Sandbox Code Playgroud)

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

eko*_*tov 4

Sys.setlocale("LC_ALL", "Russian")
Run Code Online (Sandbox Code Playgroud)

不适合我。

Sys.setlocale("LC_CTYPE", "en_RU.UTF-8")
Run Code Online (Sandbox Code Playgroud)

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

还有,跑步

defaults write org.R-project.R force.LANG en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

OS X Terminal 解决了我使用非拉丁字符的所有问题。