筋トレ、読書、時々ライフハック

サプリメントの紹介や、本の紹介をメインに書きます。 時々、『これはシェアしたいな』と思ったことも書きます

Rubyの文字コードエラーで30分詰まりました...

こんにちは!

1か月更新していなくて、少し前に

『そろそろ更新してみませんか?』という自動メールがきていました笑

 

さて、最近Rubyの勉強を行っています。

少し前にProgateでも学びましたが、今回は本を使って最初から学んでみることにしました。

初期設定から始まり、hello,worldというお決まりのパターンの後、ページ数にして20pにも満たない内に詰まってしまいました

 

それが、

 

文字コードのエラー

 

です。

 

具体的に言いますと、

#encoding:Shift_JIS

print "あ"

 

というプログラムに対し、

 

test.rb:2: invalid multibyte char (Shift_JIS)
test.rb:2: unterminated string meets end of file

 

というエラーが出ました。

 

本には、

 

windows文字コードShift_JIS

 

と書かれていて、最初は何が悪いのか全くわかりませんでした。

 

結論から言いますと、

 

最初の一行をなしにするか、

#encoding:UTF-8

 

に書き換えるかのどちらかで治りましたが、結果的にどこが問題なのかがもやもやしていました。

しばらく考えておそらくこうだろうという結論が自分なりに出たので記録しておきたいと思いこの記事を書いています。

 

まず、本の文章の読み違えが考えられました。

その本には、

環境によっては、日本語を含むスクリプトを実行するとエラーになります

(中略) 

Windowsで一般的に使われているエンコーディングShift_JISソースコードを記述した場合には、1行目に

#encoding:Shift_JIS

と書きます

 とありました。

 

ここの、

 

環境によっては

 

という点を完全に見落としており、Windows環境下ではいかなる場合も#encoding:Shift_JISが必要なのだと誤解していました。

 

私のコーディング環境は、Windowsであることに間違いはないのですが、

使用しているテキストエディタが、Sublime Text 2で、

このエディタの文字コードUTF-8でした。要するに、

 

最初から何も問題はなかった

 

ということが判明しましたorz

 

次からは読み飛ばしには気を付けようと思いました(`・ω・´)

 

何か間違い等ありましたらコメントを頂けると嬉しいです。

 

ではでは

 

Kazuki