読者です 読者をやめる 読者になる 読者になる

コマンドプロンプトの文字化けをなおす方法

macのターミナルだと無意識にできることがwindowsコマンドプロンプトではひと手間必要になる。

コマンドプロンプトirb を起動して、

 

p "あいうえお"

 

と入力したら、

 

p "b b b

 

となってしまい「あいうえお」で確定できない。

しかたなく Ctrl + D で退出。

調べたら irb の起動時に --noreadline を足せばいいことがわかった。

irb --noreadline で起動したら日本語も入力できました。

ただし、--noreadline で起動して Ctrl + D と入力しても ^D と表示されて退出できない。

なので、exit を入力して退出。

 

もう一つコマンドプロンプトで文字化けする事例。

-- sample.rb (utf-8 LF) --

str = "あいうえお"

puts str

----------------------------
 

上のファイルを ruby sample.rb で実行する場合は化けずに表示してくれる。 

ところが、別ファイルを開いて表示させるプログラムを実行すると文字化けをおこす。

例えば以下の場合。

-- aiueo.txt (utf-8 LF) --

あいうえお

かきくけこ

さしすせそ

-----------------------

 

-- test.rb (utf-8 LF) --

file = File.open("aiueo.txt")

file.each_line do | line |
    puts line

end

file.close

------------------------

 

上のファイルを、ruby test.rb で実行すると文字化けする。

これも調べたら、ruby コマンドのあとに -E utf-8 を足せば良いとあった。

ruby -E utf-8 test.rb で実行したら文字化けせずに表示されました。

 

あと、openメソッドの引数を " "(ダブルクオート)でくくらなかったら、

undefined local variable or method   for main:Object (NameError)

とエラーになった。

いつもこまかいところで着実にひっかかる。

 

 

今回の環境は、

Windows 10.0

 ruby 2.3.1p112

コマンドプロンプトの設定:

MSゴシック

932(ANSI/OEM-日本語 Shift-JIS) ※ここの設定を変えればよさそうだけど変え方がよくわからなかった。