我在Windows 8.1(zh)上,我的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的最新版本,但开发版本也无济于事

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

如果我使用RGUI,在Sys.setlocale("LC_ALL", "Russian")之后,它将允许
> print(x)
[1] "Привет"

我还 checkin 了Windows的俄语版本-Rstudio可以正常运行

最佳答案

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 Terminal中,可以很好地解决我所有使用非拉丁字符的问题。

关于R Rstudio控制台中的编码错误(但在R GUI和ggplot2中可以),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19900668/

10-14 16:24