

windows10のコマンドプロンプトからr.exeやrscript.exeを実行すると以下の通り文字化けが置きます。

C:\Program Files\R\R-3.3.2\bin\x64>r

R version 3.3.2 (2016-10-31) -- "Sincere Pumpkin Patch"  
Copyright (C) 2016 The R Foundation for Statistical Computing  
Platform: x86_64-w64-mingw32/x64 (64-bit)

R ﾍAｩRﾈ\tgEFAﾅAuｮSﾉｳﾛﾘvﾅｷB  
ﾌﾉ]ｦﾎAｩRﾉｱﾄzzｷｱﾆｪﾅｫﾜｷB  
zzﾌﾚﾗﾉﾖｵﾄﾍA'license()' ｢ﾍ 'licence()' ﾆﾍｵﾄｭｾｳ｢B

R ﾍｽｭﾌv｣ﾒﾉ､ｯvWFNgﾅｷB  
ﾚｵｭﾍ 'contributors()' ﾆﾍｵﾄｭｾｳ｢B  
ﾜｽAR R ﾌpbP[Woﾅｨﾅpｷﾛﾌ`ｮﾉﾂ｢ﾄﾍ  
'citation()' ﾆﾍｵﾄｭｾｳ｢B

'demo()' ﾆﾍｷﾎfﾝｱﾆｪﾅｫﾜｷB  
'help()' ﾆｷﾎICwvｪoﾜｷB  
'help.start()' ﾅ HTML uEUﾉwvｪﾝﾜｷB  
'q()' ﾆﾍｷﾎ R IｹｵﾜｷB

コマンドプロンプトの文字コードをutf-8に変更すると、英語で表示されるようになるため最初のメッセージの文字化けは収まりますが、日本語の文字列を含むプログラムを実行すると文字化けしてしまいます。rscriptの実行結果は以下のとおりです。

C:\Program Files\R\R-3.3.2\bin\x64>rscript test.r  
G[: \ｶﾍﾉsｳﾈ}`oCgｶｪﾜｵｽ (1 s)  
ﾀsｪ~ｳﾜｵｽ

> sessionInfo()は以下のとおりです。  
>  R version 3.3.2 (2016-10-31)  
>  Platform: x86_64-w64-mingw32/x64 (64-bit)  
>  Running under: Windows 10 x64 (build 14393)

locale:  
[1] LC_COLLATE=Japanese_Japan.932 LC_CTYPE=Japanese_Japan.932  
[3] LC_MONETARY=Japanese_Japan.932 LC_NUMERIC=C  
[5] LC_TIME=Japanese_Japan.932

原因がおわかりの方がいればお知恵を貸していただけないでしょうか？


CC BY-SA 3.0
2017-06-12T21:00:20.463
35519
2018-04-27T12:39:27.647
23747
question
r 文字化け
rscriptの文字化けについて


まず，

[code]

    C:\Program Files\R\R-3.3.2\bin\x64>rscript test.r
    G[: \ｶﾍﾉsｳﾈ}`oCgｶｪﾜｵｽ (1 s)
    ﾀsｪ~ｳﾜｵｽ
    
[/code]

という部分のエラーは

[code]

    Error: invarid multibyte character in parser at line 1
    Execution halted
    
[/code]

というエラーで，スクリプトを読み込む時のエラーです．  
これをを解決するには，スクリプトファイルがutf-8で保存されているとすると，

[code]

    rscript --enocoding=utf-8 test.r
    
[/code]

というように，スクリプトの実行時に適切なencodingを指定します．

ただ，スクリプト内で例えば

[code]

    cat("こんにちは，世界\n")
    
[/code]

と書いていたとすると，これはコマンドプロンプトでは文字化けします．  
この原因はわかりません．  
これを回避する手段は，

  1. 出力はコマンドプロンプトに出さずにファイルに保存 もしくは リダイレクトする
  2. コマンドプロンプトへの出力を nkf で変換して出力する

のどちらかです．

R の起動時のメッセージに関しては，メッセージを英語にするか，

[code]

    >r --quiet
    
[/code]

というようにして，メッセージを出さないようにして起動するかです．  
起動時のメッセージを英語にするには，`.Renviron` というファイルに

[code]

    LANGUAGE=en
    
[/code]

と書いて，ホームディレクトリに保存します．  
ホームディレクトリは，Rで

[code]

    path.expand("~")
    
[/code]

を実行するとわかります．


CC BY-SA 3.0
2017-07-03T17:12:32.217
36076
2017-07-04T03:32:04.183
2017-07-04T03:32:04.183
24196
24196
35519
answer