6

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

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

我知道如果您将 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("Счет")

这是我的 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 工作正常

4

2 回答 2

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 终端中,我用非拉丁字符解决了我所有的问题。

于 2014-09-11T17:36:14.070 回答
1
Sys.setlocale("LC_ALL", "Russian_Russia.1252")

解决了我的问题。

于 2017-05-17T15:18:07.567 回答