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

时间:2013-11-11 07:06:08

标签: r encoding rstudio

我在Windows 8.1(en)上,我的R控制台不会理解俄语字符并产生这样的smth(在控制台和运行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工作正常

2 个答案:

答案 0 :(得分: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终端中的

解决了我非常拉丁字符的所有问题。

答案 1 :(得分:1)

Sys.setlocale("LC_ALL", "Russian_Russia.1252")

解决了我的问题。