【環境】
OS: Windows8.1 Pro (64bit)
CPU: Intel Core i7-3770 (3.40GHz 3.39GHz)
RAM: 16GB
Rubyのバージョン: 2.5.1p57
【現象】
下記Rubyのソースコードを実行すると、
print(<<"EOS")
こんにちは
EOS
下記エラーが出る。
syntax error, unexpected tCONSTANT, expecting ')' →文法エラー
unterminated string meets end of file →引用符の綴じ忘れ
上記のソースコード自体は、文法エラーでも引用符綴じ忘れでもない。
【原因】
エディタで保存する時に、BOM付きになっていて、ソースコードが正しくRubyに読み込まれていなかったため。
【対処】
エディタでBOM無しにして保存する。
尚、エディタによっては、BOM無しのUTF-8を「UTF-8N」と表記するものがある。
サクラエディタ:
「名前を付けて保存」時にBOMのチェックを外す。
TeraPad:
[表示]→[オプション]→[文字コード]から初期文字コードを「UTF-8N」にする。