テキストエディタMeadowを使って作成したRubyのプログラムで、
Meadowのウィンドウでは以下のように正常に日本語が表示されているのに、
コマンドプロンプトで実行してみると以下のように違う文字になってしまう
(文字化けする)ことがある。
このとき、Meadowの左下に注目すると
「[--]J…」のように「J」という文字が表示されている。
これは編集しているファイルの文字コードを「ISO-2022-JP (通称JIS)」 に設定しているという意味である。日本語版のMS-Windowsでは通常 文字コードとして「シフトJIS (shift_jis または sjis)」を用いるため、 コマンドプロンプトでは文字化けしてしまうことになる。
このような問題が生じた場合は、以下に示すような手順で元のシフトJIS コードに戻すことが出来る。
Meadowは世界的にも多くの達人プログラマが使っているエディタ emacsをMS-Windowsで使えるようにしたものである。このような高機能な エディタを用いる場合、編集するテキストファイルの文字コードが必ずしも 編集に用いるコンピュータ自身の文字コードと同じとは限らない。 目的に応じて、ISO-2022-JP (JIS), UTF-8, EUC-JP, シフトJISなどを使い分ける ことがある。
そのため、Meadowでは編集中のテキストファイルの文字コードを任意に 変更する機能を備えている。教育用計算機システムにインストールしている Meadowでは通常シフトJISコードを使用するように設定している。 しかしながら、上記の手順の 1.に書いたような操作で文字コードを 切替えられるので、いつのまにか同等の操作をしてしまって文字コードを 変更してしまったのではないかと考えられる。
実際、上の3.で「sjis」と入力せずにエンターのみ押してしまうと、 日本語が含まれているファイルの場合、文字コードがISO-2022-JP (JIS)に設定 されてしまう(これはインターネットを支える技術においてはISO-2022-JP が最も基本的な日本語を含む文字コードであるので、デフォルトになっていると 考えられる)。
参考資料