中的编码问题.Rprofile 在 R 启动时



我在Windows 10上使用R(v3.5.1)。我的工作目录中有一个.Rprofile文件。该文件包含非ASCII字母,但以UTF-8编码保存。在启动时,非ASCII字母的编码被扭曲。例如代码:

nth <- Sys.setlocale(locale = "Lithuanian")
print("Ą Ę Ė Į Š Č Ų")

如果在启动时运行会导致:

[1] "Ä„ Ä230 Ä– Ä® Å  Ä214 Ų"

我的问题是:

  1. 是否可以配置它在启动时以 UTF-8 编码.Rprofile源的 R?
  2. 有没有另一种方法可以在启动时正确编码非 ASCII 字母?

很多可能的答案:

R 将使用当前代码页获取.Rprofile。我不知道编码区域设置"立陶宛语"意味着什么,但是如果您以该编码而不是UTF-8保存文件,则可能会起作用。 (不过,我不确定是否可以在 R 会话期间更改代码页。

我时不时地看到Windows声称有一个UTF-8代码页;也许你可以让它工作。

如果失败,您可以切换到具有适当 UTF-8 支持的其他操作系统(Linux、MacOS 等)。

也许您可以设置两个文件:一个纯 ascii.Rprofile,它源第二个文件,声明第二个文件为 UTF-8。 例如,把它放在你的.Rprofile

source(".RprofileUTF8.R", encoding="UTF-8")

但是,我必须警告你,我无法让这个工作。

您可以对 UTF-8 字符使用uxxx转义。 你可以找到那些代码像

as.hexmode(utf8ToInt("Ą Ę Ė Į Š Č Ų"))

这表明

[1] "104" "020" "118" "020" "116" "020" "12e" "020" "160" "020" "10c" "020" "172"

所以一个等效的字符串是"\u104 \u118 \u116 \u12e \u160 \u10c \u172",对我来说, 把它放在.Rprofile在Windows会话中起作用。

最新更新