Linux の UTF-8 で書いた R スクリプトで日本語の処理を行っていて,このファイルを Windows ユーザーに渡す場合,ファイルそのものを Shift-Jis に変換すればいいのだが,何となく気にくわない.そこで,iconv() 関数などを駆使する.もっとも,これが効率的でスマートな方法だとは言わない.
まず文字コードを調べる UTF-8 では以下のようにするが
$ echo -n '記号' | hexdump -C 00000000 e8 a8 98 e5 8f b7
R スクリプト上ではユニコード (UCS-2) を使う.
$ echo "記号" | iconv -t UCS-2 | hexdump 0000000 8a18 53f7 000a
iconv()の書式は
iconv(x, from ="", to = "", sub = NA)
だが,変換前後の文字コード指定は省略して使って構わない.利用可能な文字コードを確認するには以下を実行する.
> iconvlist() [1] "1026" "1046" [3] "1047" "10646-1:1993" ... [1157] "WINDOWS-874" "WINDOWS-936" [1159] "WINSAMI2" "WS2" [1161] "YU"
> iconv("\u8a18\u53f7", "", "") [1] "記号"