niszetの日記

細かい情報を載せていくブログ

(R) R4.2でWindowsでもUTF-8を設定できることを確認した

ついに念願の…

さて、R4.2がリリース目前ということで界隈では大盛り上がり(当社比)ですが、個人的に気になってたことがあったので確認してみました。

もうちゃんとWindows版のバイナリがダウンロードできますね。以前から開発版はダウンロードできたのですが、正式版もちゃんと出ています。

cran.r-project.org

ターミナル上でSys.getlocale()を実行すると、

> Sys.getlocale()
[1] "LC_COLLATE=Japanese_Japan.utf8;LC_CTYPE=Japanese_Japan.utf8;LC_MONETARY=Japanese_Japan.utf8;LC_NUMERIC=C;LC_TIME=Japanese_Japan.utf8"

のようになり、utf8になってることが確認できますね。

ちなみに、R4.1.xまではSys.setlocale("LC_ALL", "ja_JP.UTF-8")をConsole上で実行しても、

> Sys.setlocale("LC_ALL", "ja_JP.UTF-8")
[1] ""
Warning message:
In Sys.setlocale("LC_ALL", "ja_JP.UTF-8") :
  OS reports request to set locale to "ja_JP.UTF-8" cannot be honored

のようになり、設定不能でした。japanese指定だと

> Sys.getlocale()
[1] "LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932;LC_NUMERIC=C;LC_TIME=Japanese_Japan.932"

の縛りがあったわけですね。

ちなみにR4.2でR4.1.xまでのlocaleにしたいなという場合(あるのか?)以下のように出来るようです。

> Sys.setlocale("LC_ALL", 'Japanese')
[1] "LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932;LC_NUMERIC=C;LC_TIME=Japanese_Japan.932"
Warning message:
In Sys.setlocale("LC_ALL", "Japanese") :
  using locale code page other than 65001 ("UTF-8") may cause problems

ただし、警告(Warning)が出ており、わざわざこのlocaleの設定をする必要はないでしょう。

とはいえ、いつか誰かの役に立つかも知れませんので、メモしておきます。

ということで、R4.2を使っていきましょう!

Enjoy!!