编码地狱德国特殊字符

adi*_*der 8 encoding r statet rstudio

在StatET eclipse以及我设置的RStudio中

options(encoding = "ISO-8859-1")
Run Code Online (Sandbox Code Playgroud)

在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"
Run Code Online (Sandbox Code Playgroud)

在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"
Run Code Online (Sandbox Code Playgroud)

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

RStudio:

strsplit("GRÜN", "")
[[1]]
[1] "G" "R" "Ü" "N"
Run Code Online (Sandbox Code Playgroud)

StatET:

strsplit("GRÜN", "")
[[1]]
[1] "G" "R" "Ã" " "N"
Run Code Online (Sandbox Code Playgroud)

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

Rol*_*eim 0

我不是这方面的专家,但如果你使用的是 Windows,我怀疑这是系统区域设置。在这种情况下,请转至:\n控制面板 -> 区域和语言 -> 管理 -> 更改系统区域设置 [对于非 unicode 程序]

\n\n

我已将所有内容设置为在我的计算机上使用俄语,这根本没有问题,但是当我尝试使用您的代码时,我得到了以下信息:

\n\n
Sys.setlocale("LC_CTYPE","german")\nstrsplit("GR\xc3\x9cN", "")\n[[1]]\n[1] "G" "R" "\xd0\xac" "N"\n
Run Code Online (Sandbox Code Playgroud)\n\n

很明显,Rstudio 混淆了变音符号和俄语软符号,而 Windows 经常这样做。

\n