2017-10-13 23 views
1

Windows上のRstudioでコンソールエンコーディングを変更する方法はありますか?R、RstudioコンソールWindowsエンコーディング

これは、特定のエンコーディングでファイルを読み込んだり、スクリプトを読み込むことではなく、コンソールエンコーディング(エンコーディングSys.getlocaleの収率)を変更することではありません。

これは通常大きな問題ではありませんが、私はパッケージを作成しようとしています。私はいくつかの文字列と記号にドイツ語のウムラウトを使用しています。 roxygen2UTF-8エンコードでは最もうまく動作しますが、covrは、ソースファイルがコンソール/システムエンコードに含まれていないとエラーになります。

roxygen2covr問題の回避策がある場合、これはまた、役立つだろうAddintional情報を:。。私は、コンソールからcovr::package_coverageを呼び出すと、私はコマンドを構築Rstudios経由roxygen2を呼び出す)

との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システムファンクションを呼び出します。残念ながら、文字タイプ(LC_CTYPE)にUTF-8を指定する方法はありません。 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

関連する問題