R 启动时 .Rprofile 中的编码问题
Encoding issue in .Rprofile at the startup of R
我在 Windows 10 上使用 R (v3.5.1)。我的工作目录中有一个 .Rprofile
文件。该文件包含非 ASCII 字母,但使用 UTF-8 编码保存。在启动时,非 ASCII 字母的编码被扭曲。例如代码:
nth <- Sys.setlocale(locale = "Lithuanian")
print("Ą Ę Ė Į Š Č Ų")
如果 运行 在启动时导致:
[1] "Ä„ Ä0 Ä– Ä® Å Ä4 Ų"
我的问题是:
- 是否可以将 R 配置为在启动时使用 UTF-8 编码来源
.Rprofile
?
- 是否有其他方法可以在启动时正确编码非 ASCII 字母?
很多可能的答案:
R 将使用当前代码页获取 .Rprofile
。我不知道编码语言环境 "Lithuanian" 意味着什么,但如果您以该编码而不是 UTF-8 保存文件,它可能会起作用。 (不过我不确定您是否可以在 R 会话期间更改代码页。)
我时常看到 Windows 声称拥有 UTF-8 代码页;也许你可以让它发挥作用。
如果失败,您可以切换到具有适当 UTF-8 支持的不同 OS(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 会话中工作。
我在 Windows 10 上使用 R (v3.5.1)。我的工作目录中有一个 .Rprofile
文件。该文件包含非 ASCII 字母,但使用 UTF-8 编码保存。在启动时,非 ASCII 字母的编码被扭曲。例如代码:
nth <- Sys.setlocale(locale = "Lithuanian")
print("Ą Ę Ė Į Š Č Ų")
如果 运行 在启动时导致:
[1] "Ä„ Ä0 Ä– Ä® Å Ä4 Ų"
我的问题是:
- 是否可以将 R 配置为在启动时使用 UTF-8 编码来源
.Rprofile
? - 是否有其他方法可以在启动时正确编码非 ASCII 字母?
很多可能的答案:
R 将使用当前代码页获取 .Rprofile
。我不知道编码语言环境 "Lithuanian" 意味着什么,但如果您以该编码而不是 UTF-8 保存文件,它可能会起作用。 (不过我不确定您是否可以在 R 会话期间更改代码页。)
我时常看到 Windows 声称拥有 UTF-8 代码页;也许你可以让它发挥作用。
如果失败,您可以切换到具有适当 UTF-8 支持的不同 OS(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 会话中工作。