我在Windows 10上使用R(v3.5.1),并且我的工作目录中有一个.Rprofile
文件。该文件包含非ASCII字母,但以UTF-8编码保存。在启动时,非ASCII字母的编码会失真。例如代码:
nth <- Sys.setlocale(locale = "Lithuanian")
print("Ą Ę Ė Į Š Č Ų")
如果在启动时运行会导致:
[1] "Ä„ Ä\230 Ä– Ä® Å Ä\214 Ų"
我的问题是:
.Rprofile
的R? 答案 0 :(得分:2)
很多可能的答案:
R将使用当前代码页获取.Rprofile
。我不知道编码语言环境“立陶宛语”的含义,但是如果您以该编码而不是UTF-8保存文件,则可能会起作用。 (我不确定您是否可以在R会话期间更改代码页。)
我时不时地看到Windows声称拥有UTF-8代码页。也许您可以使它正常工作。
如果失败,则可以切换到具有适当UTF-8支持的其他操作系统(Linux,MacOS等)。
也许您可以设置两个文件:一个纯粹的ascii .Rprofile
,它可以获取第二个文件,并声明第二个文件为UTF-8。例如,将其放入您的.Rprofile
:
source(".RprofileUTF8.R", encoding="UTF-8")
但是,我必须警告您,我无法使它正常工作。
您可以将\uxxx
转义符用作UTF-8字符。您可以找到类似代码的
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会话中即可。