2016-09-22 6 views
5

デフォルトのエンコードをUTF-8に設定しようとしました。成功せず、今までに:ベストプラクティス:ロケールとしてUTF-8に変更する必要がありますか、それをそのままにしておくことは安全ですか?

a <- "Hallo" 
b <- "äöfd" 
print(Encoding(a)) 
# [1] "unknown" 
print(Encoding(b)) 
# [1] "latin1" 

options(encoding = "UTF-8") 
a <- "Hallo" 
b <- "äöfd" 
print(Encoding(a)) 
# [1] "unknown" 
print(Encoding(b)) 
# [1] "latin1" 

old_locale <- Sys.getlocale() 
Sys.setlocale(category = "LC_ALL", locale = "English_United States.1252") 
a <- "Hallo" 
b <- "äöfd" 
print(Encoding(a)) 
# [1] "unknown" 
print(Encoding(b)) 
# [1] "latin1" 

Sys.getlocale() 
# [1] "LC_COLLATE=German_Switzerland.1252; 
# LC_CTYPE=German_Switzerland.1252; 
# LC_MONETARY=German_Switzerland.1252; 
# LC_NUMERIC=C;LC_TIME=German_Switzerland.1252" 

私は、以下のリンクR Encoding for filesHow to use Sys.setlocale()が見つかりましたが、あなたは彼らが私の場合には動作しないと私は理由を理解していないようで見ることができるように。

は私もSys.setlocale(category = "LC_ALL", locale = "en_US.UTF-8")を試みたが、

警告メッセージが表示されました:Sys.setlocaleで(、ロケールのカテゴリ= "LC_ALL" = "EN_US.UTF-8"):OSレポートは、ロケールを設定するように要求します」 EN_US.UTF-8" は、コマンドsysteminfo & pause

Systeを与えるcmd

を表彰することができませんmgebietsschema:デ-CH;ドイツ語(スイス) Eingabegebietsschema:デ-CH;ドイツ語(スイス)

編集

  • 私は"unknown"エンコーディングは、私はないですミスにつながる可能性があることを恐れます
  • 新しい標準のUTF-8を使って、私が持っていたような問題を避けるのは良いことだと思いました。
  • なく、少なくとも最後に、私は、再現性のある結果を得ることができるようにしたい - 同僚が(符号化に関する以下の問題で)Mac上で作業している...

EDIT2を:を持つ経験は何ですかこの問題?ベストプラクティスはありますか?

+0

私はこれがWindowsシステムでは可能だとは思っていませんが、たとえそれがあっても、おそらくすぐに問題になるでしょう。なぜこれが欲しいのですか? – Roland

+0

@Roland私の編集を参照してください。私は英語でコードを書く(スクリプトとパッケージ)。私がUMLauteが必要な顧客からのデータを含むコンソールを使用し始めると、問題に遭遇します。 – Christoph

+2

1)あなたがリンクした問題は、Rアップデートで修正されました。 2)私はWindowsがUTF-8をデフォルトにするのに十分サポートしているとは思わない。 (しかし、私は間違っている可能性があります)3)私はドイツ語で、UMLaute(デフォルトのlatin1文字セットの一部)の問題は非常にまれで、前回は覚えがほとんどありません(data.tableと結合最適化、私は簡単にオフにすることができます)。 – Roland

答えて

0

これは完璧な答えではありませんが、適切な回避策です。ローランドが指摘しているように、ロケールを変更すると危険です。だからそれをそのままにしておいてください。ファイルがあり、問題が発生した場合は、UTF-8以外のエンコーディングをhereRStudioとして検索してください。私が見たところでは、ほとんどの編集者はそのような特徴を持っています。

this答えは、あなたがファイルsource()の場合にできることについて、より多くの洞察を与えます。

関連する問題