编码地狱德国特殊字符

时间:2013-07-30 11:25:08

标签: r encoding rstudio statet

在StatET eclipse和RStudio中设置

options(encoding = "ISO-8859-1")
在StatET中我有:

Sys.getlocale()
[1] "LC_COLLATE=German_Germany.1252;LC_CTYPE=German_Germany.1252;LC_MONETARY=German_Germany.1252;LC_NUMERIC=C;LC_TIME=German_Germany.1252"

在RStudio中也一样:

Sys.getlocale()
[1] "LC_COLLATE=German_Germany.1252;LC_CTYPE=German_Germany.1252;LC_MONETARY=German_Germany.1252;LC_NUMERIC=C;LC_TIME=German_Germany.1252"

所有在同一台计算机上同时运行,但输入相同(在两种情况下直接输入控制台),我得到的结果不同。

RStudio:

strsplit("GRÜN", "")
[[1]]
[1] "G" "R" "Ü" "N"

StatET:

strsplit("GRÜN", "")
[[1]]
[1] "G" "R" "Ã" " "N"

问题:除了设置Sys.setlocale()encoding以使两个系统产生相同的结果外,我还需要做些什么呢?

1 个答案:

答案 0 :(得分:0)

我不是这方面的专家,但如果你在Windows上,我怀疑它是系统区域设置。在这种情况下,请转到: 控制面板 - >地区和语言 - >行政 - >更改系统区域设置[用于非unicode程序]

我已经准备好在计算机上使用俄语了,这根本不是问题,但是当我尝试使用你的代码时,我得到了这个:

Sys.setlocale("LC_CTYPE","german")
strsplit("GRÜN", "")
[[1]]
[1] "G" "R" "Ь" "N"

很明显,Rstudio混淆了变音符号和俄语软符号,这是Windows常常做的事情。