« [R]乱数の発生を再現する | トップページ | [R]パイプを使う »

2025年1月 2日 (木)

[R]Windows版RでShift_JISを使う

Windows版は、バージョン4.1.3まではデフォルトで扱う日本語の文字コードはShift_JISだったが、次の4.2.0からはUTF-8になった。これをShift_JISにする場合はSys.setlocale関数に「Japanese_Japan.932」を指定して実行すればよい。漢字「石」はUTF-8による文字コードは0xe79fb3、Shift_JISは0x90ceであるので、文字コードが切り替わったことがわかる。

> R.Version()$platform
[1] "x86_64-w64-mingw32"
> R.Version()$version.string
[1] "R version 4.4.1 (2024-06-14 ucrt)"
> 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"
> localeToCharset()
[1] "UTF-8"
> ra <- charToRaw("石見舞菜香")
> print(ra)
[1] e7 9f b3 e8 a6 8b e8 88 9e e8 8f 9c e9 a6 99
> Sys.setlocale(locale = "Japanese_Japan.932")
[1] "LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932;LC_NUMERIC=C;LC_TIME=Japanese_Japan.932"
警告メッセージ:
Sys.setlocale(locale = "Japanese_Japan.932") で:
using locale code page other than 65001 ("UTF-8") may cause problems
> localeToCharset()
[1] "CP932"
> ra <- charToRaw("石見舞菜香")
> print(ra)
[1] 90 ce 8c a9 95 91 8d d8 8d 81

« [R]乱数の発生を再現する | トップページ | [R]パイプを使う »

R(環境)」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [R]乱数の発生を再現する | トップページ | [R]パイプを使う »

無料ブログはココログ

■■

■■■