ファイルが文字化けする

コンピュータでは、「文字コード」や「行末コード(改行コード)」の違いにより、ファイルが文字化けして内容を正しく見ることができない場合があります。
このようなときは、「コード変換」を行ってください。
※「文字コード」、「行末コード」、「コード変換」については、こちらを参考にしてください。

「コード変換」のやり方はいくつかありますが、ここでは、「元のファイルは一切変更せずに、コード変換した新しいファイルを作成する」ことにします。

  1. 講義室等に設置しているMac上で、Windowsで作成したファイルをMacやahで見れるようにコード変換する
    1. コード変換したいファイルを右クリックして、メニューにある「このアプリケーションを開く」の中のメニューから「mi」を選択します。
      MenuList_FileMigi
    1. コード変換したいファイルがmiで開きます。開いているファイルは、Windowsで作成したファイルなのでmiのツールバーの文字コードの表示は「SJIS」、行末コードの表示は「CR+LF」になっているはずです。
      ToolBar_mi_SJIS-CR+LF
    1. Macやahで見れるファイルにコード変換したいので、miのツールバーの文字コードと行末コードのプルダウンメニューの中から、文字コードは「UTF-8」、行末コードは「LF」を選択します。
      ToolBar_mi_UTF8-CR
      ※このときに、同じファイル名で上書き保存をしたい場合は、ツールバーの左端にあるフロッピーディスクのボタンをクリックすると元のファイルに上書きされます。
      ToolBar_mi_OverWrite
    1. デスクトップ画面の上部にあるmiのメニューバーの中の「ファイル」をクリックして、表示されたメニューの中から「別名で保存」をクリックします。
      MenuList_mi_File
    1. 「名前」の部分に新しいファイル名を入力し、「場所」の部分に新しいファイルの保存先フォルダを指定します。その後、「保存」ボタンをクリックします。
      ToolBar_mi_SaveFile
      以上で完了です。
  1. 講義室等に設置しているMac上で、Macやahで作成したファイルをWindowsで見れるようにコード変換する。
    Aと同じ手順で行います。
    Aの手順3のコードと、Aの手順2のコードが入れ替わるだけです。
    文字コード「UTF-8」、行末コード「LF」から文字コード「SJIS」、行末コード「CR+LF」にコード変換します。

●「文字コード」、「行末コード」、「コード変換」について補足

【文字コード】
コンピュータで扱うすべてのデータは、0か1のビット列で表現されています。
そのため、文字データもひとつひとつ異なるビット列で表現されおり、「どの文字をどういうビット列で表現するか」を定めたルールがあります。このルールを「文字コード」と呼んでいます。
文字コードには、いくつか種類があり、同じ文字でも文字コードの違いによって割り当てられたビット列が違ってきます。
代表的な文字コードには、主にWindows系OSで使用されているシフトJIS(SJIS)や、UNIX系OSで使用されている日本語EUCやUnicode(UTF-8)などがあります。

【行末コード(改行コード)】
行末コードは、「改行」に割り当てられているビット列が何であるのかになります。
文字コードのようにいくつか種類がありますが、文字コードの種類には依存していません。OSによって使用する「行末コード」が違ってきます。
WindowsはCR+LF、Mac OSはCR、UNIXはLFを使います。

【コード変換】
ある文字コードを使って作成されたデータを、別の文字コードのデータに変換することです。OS間で文字データをやりとりする場合に、この「コード変換」が必要になってくる場合があります。

教育情報システムのデフォルト
コンピュータの種類 全角文字の文字コード 行末(改行)コード
①講義室等に設置しているMac UTF-8(BOM無し) LF ※1
②アプリケーション用サーバah UTF-8(BOM無し) LF
③Windows Shift-JIS CR+LF

※1 miで改行を入力していない新規ファイルを作成した場合は、行末コードはCRになります。

教育情報システムでは、「①講義室等に設置しているMac」で作成したファイルは「②アプリケーション用サーバah」で見ることができます。逆に「②アプリケーション用サーバah」で作成したファイルを「①講義室等に設置しているMac」で見ることもできます。これは文字コードも行末コードも同じだからです。
しかし、「③Windows」で作成したファイルを「①講義室等に設置しているMac」や「②アプリケーション用サーバah」のviやcatなどのコマンドを使うやり方で見ると、日本語が文字化けしたり、改行がおかしいといった問題が起きることがあります。これは文字コードや行末コードが異なっているからです。
また、プログラムのソースファイルなどでは、コンパイラ等が行末コードを正確に認識できないことによるエラーなども起こりますのでご注意ください。