poyopoyo0のブログ

poyopoyoのブログ

Web 関連のメモ書きブログです。

【 Ruby 】 Windows上で文字コードエラーになる場合

今まではWindowsRubyスクリプトを作成する際、スクリプトの冒頭に

# coding: Shift_JIS

と記述していたのだけど、あるとき

incompatible encoding regexp match (Shift_JIS regexp with Windows-31J string) (Encoding::CompatibilityError)

文字コードエラーが発生することがあった。

こちらの記事 qiita.com によると、 Shift_JISWindows-31J別モノ とのことで、どうやら、Windowsコマンドプロンプト上では Windows-31J が使われているらしい。

ちなみにこちら weblabo.oscasierra.netShift_JISWindows-31J が分岐した経緯が記されていた。

上記のエラーに関しては、スクリプトの冒頭を

# coding: Windows-31J

と記述し直してやると、発生しなくなった。Windowsのためのみに作成するスクリプトなら、この記述に統一しといた方が、余計な不具合を発生させてないでいいかも。

今まで Shift_JISWindows-31J の違いなんて気にしたことなかったな。。。