R,Rstudio 控制台编码窗口

sna*_*aut 5 windows encoding locale r rstudio

我有办法在 Windows 上的 Rstudio 中更改控制台编码吗?

这不是关于以特定编码读取文件或获取脚本,而是关于更改控制台编码(编码 Sys.getlocale 产生)。

这通常不是什么大问题,但我尝试创建一个包,并且我在某些字符串和符号中使用了德语变音符号。编码roxygen2效果最好,UTF-8covr如果源文件不在控制台/系统编码中,则会出现错误。

(如果有解决方法roxygen2covr问题,这也会有所帮助。附加信息:我covr::package_coverage从控制台调用,我roxygen2通过 Rstudios Build 命令调用。)

和会话信息:

sessionInfo()
# R version 3.4.2 (2017-09-28)
# Platform: x86_64-w64-mingw32/x64 (64-bit)
# Running under: Windows >= 8 x64 (build 9200)
# 
# Matrix products: default
# 
# locale:
# [1] LC_COLLATE=German_Austria.1252  LC_CTYPE=German_Austria.1252    LC_MONETARY=German_Austria.1252 LC_NUMERIC=C                    LC_TIME=German_Austria.1252    
Run Code Online (Sandbox Code Playgroud)

更新:通过 Rstudio 中的文件获取出错的函数,加载devtools::load_all(".")和 RStudio gui 给出错误/错误的编码。

Pat*_*rry 5

如果您问如何在 Windows 上将区域设置更改为支持 UTF-8 的区域设置,答案是您不能

当您调用 时Sys.setlocale,R 将调用setlocale系统函数。不幸的是,没有办法为字符类型 ( LC_CTYPE)指定 UTF-8 ;见/sf/answers/303520731/

可以做的是将区域设置更改为https://msdn.microsoft.com/library/windows/desktop/dd373814.aspx 中描述的区域设置之一。例如,要更改为 Windows-1251,请执行

Sys.setlocale("LC_CTYPE", ".1251")
Run Code Online (Sandbox Code Playgroud)

希望在将来的某个时候,您将能够在 Windows 上编写 UTF-8 编码的数据。目前,这是不可能的。所有输出都通过本机语言环境:https : //stat.ethz.ch/pipermail/r-devel/2017-June/074556.html