文字コード編・第1回
文字化けが起こる仕組み
ひとことで言うと
文字化けは、書いた側と読んだ側で、文字コードが違うときに起こります。ファイルが壊れたわけではありません。違う文字コードで読んだだけです。だから、正しい文字コードで読み直せば、元に戻ります。
異動してきたら、最初に確かめること
チェックは、このスマートフォンのブラウザに保存されます。
解説(テキスト版)
はじめに

情シスには、こんな相談が届きます。業者から届いたCSVを、エクセルで開いたら、読めない文字だらけになった、と言われる。
あるいは、外部から届いたメールの、添付ファイルの名前が化けている、と言われる。
どちらも、文字コードの話です。今日から始まる文字コード編、第1回は、文字化けが起こる仕組みをお話しします。
一言で言うと

先に、一言でまとめます。文字化けは、書いた側と読んだ側で、文字コードが違うときに起こります。
ファイルが壊れたわけではありません。違う文字コードで読んだだけです。だから、正しい文字コードで読み直せば、元に戻ります。
よくある例:CSVとエクセル

たとえば、施設予約のシステムから、今月の予約の一覧を、CSVで一括出力したとします。
システムの画面では、予約日、施設名、利用者名が、きちんと日本語で並んでいます。出力されたCSVの中身も、UTF-8という文字コードで、正しく書かれています。
ダウンロードしたファイルを、パソコンのエクセルで、そのままダブルクリックして開きます。すると、日付や数字は読めるのに、日本語の部分だけが、読めない文字になります。
エクセルが、このファイルを、Shift_JISという、別の文字コードで読んでしまったのです。なぜ、こんなことが起こるのでしょうか。仕組みを見ていきます。
文字は番号で保存される

コンピューターは、文字を、そのままの形では保存していません。一つひとつの文字に番号を割り当てて、その番号を保存しています。
どの文字に、どの番号を割り当てるか。この決まりのことを、文字コードと言います。
画面は、4つの文字の番号を、Shift_JISと、UTF-8で比べたものです。英字のaは、どちらも、61という同じ番号です。ところが、ひらがなの「あ」、カタカナの「ア」、漢字の「亜」は、Shift_JISでは2つの番号、UTF-8では3つの番号で表されていて、まったく違います。同じ文字でも、文字コードによって番号が違うのです。
違う文字コードで読むと、化ける

では、UTF-8で書いたファイルを、Shift_JISで読むと、どうなるでしょうか。
番号はそのままで、読む側は、Shift_JISの決まりで文字に戻します。UTF-8では3つで1文字の番号を、2つずつに区切って読むので、まったく違う文字が並びます。さきほどのCSVの見出しも、同じようにして化けました。
英字のaは、どちらの文字コードでも61なので、化けません。日本語の部分だけが化けるのは、このためです。
ファイルの中身は、正しいままです。エクセルの、データの取り込みの機能で、UTF-8を指定して開けば、きちんと読めます。
書き出すときに、文字コードを選べる

システムによっては、書き出すときに、文字コードを選べるものもあります。画面は、キントーンの、ファイルに書き出す画面です。
文字コードの欄に、Shift-JIS、UTF-8、BOM付きのUTF-8などが並んでいます。同じデータでも、どの文字コードで書き出すかを、ここで決めているのです。西ヨーロッパの言葉や、中国語の文字コードもあります。文字コードが、国や言語ごとに作られてきたからです。
エクセルで開くなら、Shift-JISか、BOM付きのUTF-8を選べば、化けずに開けます。BOMについては、次回お話しします。ほかのシステムに読み込ませるなら、そのシステムが読める文字コードに合わせます。
メールのヘッダー

メールも同じです。メールの先頭には、ヘッダーという、送り主や件名などを書いた部分があります。
本文の文字コードは、ヘッダーの、コンテントタイプという行に、charset=UTF-8のように書かれています。受け取ったソフトは、ここを見て、本文をどの文字コードで読むかを決めます。
件名や、添付ファイルの名前も、文字コードの名前を付けたうえで、英数字に置き換えて、ヘッダーに書かれています。画面の、件名と、ファイル名の行です。
送る側のソフトが、ここを正しく書かなかったり、受け取る側のソフトが、その書き方に対応していなかったりすると、化けます。
特に、添付ファイルの名前は、書き方が何通りかあって、古いソフトとの間で化けやすいところです。外部とやり取りするファイルの名前は、英数字にしておくと安全です。
文字コードにない文字は、消える

もう一つ、似ているけれど、別の現象があります。文字が、はてなマークや、中黒、四角に置き換わってしまう現象です。
これは、変換した先の文字コードに、その文字がないときに起こります。たとえば、はしごだかの「髙」や、丸で囲んだ数字は、古い文字コードの、基本の部分には入っていません。
文字コードにない文字は、変換した時点で、別の記号に置き換えられて、元の文字の情報が失われます。こちらは、読み直しても戻りません。
化けたまま保存すると、戻せない

文字化けで、いちばん気を付けたいのが、化けたまま上書き保存してしまうことです。
化けた文字は、読む側にとっては、正しい文字として扱われています。その状態で保存すると、化けた文字の番号で、ファイルが書き直されます。
こうなると、正しい文字コードで読み直しても、元には戻りません。化けたファイルは、まず保存せずに閉じる。これが鉄則です。
現場でよくある誤解

現場でよくある誤解を、3つ挙げます。
一つ目。文字化けしたら、パソコンが壊れた、という誤解です。壊れたのではなく、読み方の違いです。正しい文字コードで読み直せば、戻ります。
二つ目。フォントを入れれば直る、という誤解です。フォントは文字の形のデータで、文字と番号の決まりである文字コードとは、別のものです。文字コードの違いは、フォントでは直りません。
三つ目。メモ帳で開いて、保存し直せば直る、という誤解です。保存するときの文字コードを正しく選ばないと、かえって情報が失われることがあります。
文字化けの相談を受けたら、最初に確かめること

では、文字化けの相談を受けたら、まず何を確かめればいいでしょうか。
一つ目。元のファイルを残すことです。上書き保存はせず、コピーを取ってから調べます。
二つ目。そのファイルを、どの文字コードで書いたかを、出した側に聞くことです。システムの事業者なら、すぐに答えられるはずです。
三つ目。英数字は読めて、日本語だけが化けているか、です。そうなら、文字コードの違いの可能性が高いです。
理解度テスト
3問です。答えを選んで、「答え合わせ」を押してください。
結果は、このブラウザに保存されます。成績ページで「ふっかつのじゅもん」を作ると、別の端末でも続きから使えます。