質問: ### 経緯 Rubyをさわってみたいな...と思って愛用のSublimeText3で環境を作って、 環境構築の参考にしたサイト"qiita" 実行して見たところ「kconv」を使った文字列表示が出来なかったです(putsでの表示は出来た)。 プログラムの参考にしたサイト コマンドプロンプトから実行すると上手くいきました。 いちいちコマンドプロンプトから実行するのが面倒で、SublimeText3から実行しているのですが、そもそもSublimeText3でやること自体が間違っているのか(kconvに限らず特殊な方法?は未対応なのか)、やり方が間違っているのでしょうか? 教えてください ### 該当のソースコード ``` # 2018/4/10 test.rb require "kconv" #このputsを使っての表示は出来ました puts("Hello"); puts("World"); #このKconvを使うと動きません print(Kconv.tosjis("こんにちは¥nお元気ですか"), "¥n") print(Kconv.tosjis(<<"EOS")) こんにちは お元気ですか ではさようなら EOS ``` "実行結果" ---SublimeText3--- [Finished in 0.3s] =------------------ 実行までに掛かった時間のみが表示... --- ---コマンドプロンプト--- C:\Users\XXXXX>C:\Users\XXXXX\Documents\Ruby\test.rb Hello World こんにちは お元気ですか こんにちは お元気ですか ではさようなら =---------------- できんじゃん... --- ### 試したこと ・フォントがだめなのかと思って"Migu 2M"->"MS UI Gothic"に変更 動かず... ↓ ・ならばエンコードか..."Shift_JIS"->"UTF-8"->"ASCII" 動かず... ↓ ・コマンドプロンプトでは動くかなぁ... 動いた... ### 補足情報(FW/ツールのバージョンなど) win7 64bit SublimeText3 ver3.0 build 3143 Ruby 2.5.1-1
回答: まず、`kconv`は**Ruby 1.8以下との互換**のために残っている古いライブラリです(るりま)。Ruby 2.5で動かすコードを書くために使うものではありません。 そして、Ruby(に限らず、Unix系のコンソールアプリ) + Windows + 日本語は全般に相性が悪く、「うまく表示されない」「文字化けを起こす」など、うまく使いこなすのに経験が必要となります。 コンソールで日本語処理したいなら、「自分なりに安定して使える環境を見つけ出す」、あるいは「Linuxの仮想マシンで動かす」などが必要となります。