Rubyのcmdでの文字化け解消する3つの方法

基本的に全部で3つあると思っています。

※encod()メソッドは省いています。素人プログラマーはわかりやすいものを好む傾向があります。

  1. requireのkconvのtoutf8などを使う。こちら、またはこのサイトで「kconv」と検索
  2. 「ruby -Ks test.rb」ほかにも「-Ku」などがあります。本記事
  3. cmdのchcpコマンドで表示文字コードを切り替える。こちら、またはこのサイトで「chcp」と検索

今回は二番目の「-Ks」についてです。とは言っても引用させてもらいます↓。

コマンドラインオプションで文字コードの指定 – 日本語と文字コード – Ruby入門

ping = `ping 127.0.0.1`
puts ping, "Rubyから出力しました"
puts ping + "Rubyから出力しました"
#どっちも同じ

上記のコードを次の3つで実行してみてください。

サクッと「バッククォートping 127.0.0.1バッククォート」という意味不明なコードがございますが、こちらに書きました。Rubyからcmdコマンドを実行した結果受け取れるすごく便利な書き方です。

ruby test.rb
ruby -Ks test.rb
ruby -Ku test.rb

これをバッチファイルで実行したらどうなるんでしょうね笑?「自分で自分を実行する!?」怖くてやってません。

(ちなみに上記の最後の改行含めた4行をコピーしてcmdに貼り付けたら一気に3つ実行してくれます。)

(RubyからWindowsのバッチファイルを実行する方法はこちら)

挙動を自分で確認するのはすごく良いことだと思います。まぁ文字化けしたら「-Ks」か「-Ku」を両方試せばいいのですが。

そうやって感覚を増やしていきましょう!

プログラミングってすごく何と言いますか「カチっと」してるもの(意味不明笑?)というイメージがありましたが、最近結構「感覚的」な気がしています。