【 Ruby 】 Windows上で文字コードエラーになる場合
今まではWindowsでRubyスクリプトを作成する際、スクリプトの冒頭に
# coding: Shift_JIS
と記述していたのだけど、あるとき
incompatible encoding regexp match (Shift_JIS regexp with Windows-31J string) (Encoding::CompatibilityError)
と文字コードエラーが発生することがあった。
こちらの記事
qiita.com
によると、 Shift_JIS
と Windows-31J
は 別モノ とのことで、どうやら、Windowsのコマンドプロンプト上では Windows-31J
が使われているらしい。
ちなみにこちら
weblabo.oscasierra.net
に Shift_JIS
と Windows-31J
が分岐した経緯が記されていた。
# coding: Windows-31J
と記述し直してやると、発生しなくなった。Windowsのためのみに作成するスクリプトなら、この記述に統一しといた方が、余計な不具合を発生させてないでいいかも。
今まで Shift_JIS
と Windows-31J
の違いなんて気にしたことなかったな。。。