2017-10-13 109 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