Meadowで作成したファイルが文字化けする場合の修復法

I. 文字化けが起きている状態

テキストエディタMeadowを使って作成したRubyのプログラムで、 Meadowのウィンドウでは以下のように正常に日本語が表示されているのに、
Meadow画面(文字コードが違っている)
コマンドプロンプトで実行してみると以下のように違う文字になってしまう (文字化けする)ことがある。
コマンドプロンプト画面(文字化けしている)

このとき、Meadowの左下に注目すると
Meadow画面の一部(文字コードが違っている)
[--]J…」のように「J」という文字が表示されている。

これは編集しているファイルの文字コードを「ISO-2022-JP (通称JIS)」 に設定しているという意味である。日本語版のMS-Windowsでは通常 文字コードとして「シフトJIS (shift_jis または sjis)」を用いるため、 コマンドプロンプトでは文字化けしてしまうことになる。

II. 問題を修復する手順

このような問題が生じた場合は、以下に示すような手順で元のシフトJIS コードに戻すことが出来る。

  1. Meadowで以下のような順でキーを投入する(「RET」はエンターキー を示す)。
    C-x RET f
  2. 上記の「f」を押すと以下のようなメッセージがMeadowの下部に 表示される。
    Coding system for visitied file (default, nil):
  3. ここで「sjis」とキー入力して最後にエンターを押す。
    Meadow画面の下部(設定変更途中)
  4. Meadow画面左下が以下のような表示になれば正常(シフトJIS)に戻っている (「J」が「S」になっている)。 この状態でファイルに保存し、プログラムの実行をして直っていることを確認する。
    Meadow画面の下部(正常な場合)

III. なぜこのような問題が起きるのか?

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 が最も基本的な日本語を含む文字コードであるので、デフォルトになっていると 考えられる)。

参考資料

阪口哲男@図書館情報メディア研究科.大学院.筑波大学
Thu Dec 20 18:07:01 JST 2007