2017-10-13 116 views
1

我有一种方法可以在Windows上更改Rstudio中的控制台编码吗?R,Rstudio控制台编码Windows

这不是关于读取特定编码中的文件或采购脚本,而是关于更改控制台编码(编码Sys.getlocale产量)。

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

(如果有对roxygen2covr问题,这也将有助于Addintional信息解决方法:我叫covr::package_coverage从控制台和我通过Rstudios叫roxygen2 Build命令)

和sessioninfo:

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  

更新:通过Rstudio中的文件找出产生错误的函数,使用devtools::load_all(".")加载,RStudio gui给出错误/错误的编码。

+0

您的意思是'Sys.setlocale'? – jsb

+0

是的,但我不能让其他编码工作,要么我得到Windows中的语言环境错误,要么Windows不支持编码。任何帮助或链接到Windows语言环境的文档也会有很大的帮助。 – snaut

+0

你到目前为止尝试过什么?用这些信息更新问题。 – jsb

回答

1

如果您问的是如何在Windows上将语言环境更改为支持UTF-8的语言环境,则答案为,您不能使用

当您拨打Sys.setlocale时,R会呼叫setlocale系统功能。不幸的是,没有办法为字符类型指定UTF-8(LC_CTYPE);见https://stackoverflow.com/a/4336010/6233565

可以做的是将语言环境更改为https://msdn.microsoft.com/library/windows/desktop/dd373814.aspx中描述的语言环境之一。例如,更改到Windows-1251,做

Sys.setlocale("LC_CTYPE", ".1251") 

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

+0

谢谢,这正是我想知道的。那么我想我必须找到一些解决方法。 – snaut