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工作正常
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 解决了我使用非拉丁字符的所有问题。