CSVをExcelで開いたら、文字がめちゃくちゃになった。
取り込んだデータの一部が「?」に変わっていた。
こうした「文字化け」は、現場でとてもよく起きる問題です。
原因は、ほとんどの場合「文字コード」のズレです。
この記事では、W3C(Web技術の標準を決める団体)、IETF(インターネットの技術ルールを公開している団体)、WHATWG(ブラウザの標準を決める団体)、MicrosoftやGoogleの公式資料を根拠に、文字コードの基本と日本語環境での注意点を整理します。
文字化けの正体をひとことで言うと
コンピューターの中では、文字は「数字(バイト)」として保存されています。その数字をどの文字に読み替えるかを決めた対応表が、文字コードです。
W3Cは、これを「暗号を解く鍵」にたとえています。
鍵がなければ、データはただの文字の山に見えます [K1]。そのため、保存した側と読む側が違う鍵を使うと、文字化けが起きます。
4つのテーマ
| テーマ | ひとことで言うと | 詳しくは |
| 文字コードの基本 | 文字・番号・バイトの関係。 現在の標準はUTF-8。 | 詳細① |
| 日本語の文字コード | Shift_JISなど、昔の方式が今も残っている。 | 詳細② |
| 文字化けの仕組み | 保存と読み込みで鍵が違うと起きる。 CSVとExcelが典型。 | 詳細③ |
先に結論:新しく作るなら、UTF-8
W3Cは、コンテンツやデータの作り手は、現在は常にUTF-8を選ぶべきだと述べています。1つの文字コードで必要になりそうなあらゆる文字を扱えるため、変換の手間が不要になるからです [K1]。
WHATWGの標準も、新しいプロトコルやデータ形式ではUTF-8だけを使うよう定めています [K4]。
発注・運用で最初に確認したいこと
- システム全体で、文字コードをUTF-8にそろえているか
- CSVなど、ファイルでやり取りするデータの文字コードは何か。相手のシステム(Excelなど)と合っているか
- 絵文字や特殊な漢字が、途中で別の文字に変わったり消えたりしないか
注記:この3点は、各公式資料の内容から私が整理した確認項目です。
資料がこの形のチェックリストを示しているわけではありません。
参照元
[K1] W3C Internationalization, Character encodings for beginners — https://www.w3.org/International/questions/qa-what-is-encoding
[K3] IETF, RFC 3629: UTF-8, a transformation format of ISO 10646(STD 63) — https://datatracker.ietf.org/doc/html/rfc3629
[K4] WHATWG, Encoding Standard — https://encoding.spec.whatwg.org/
[K5] Microsoft Support, Opening CSV UTF-8 files correctly in Excel — https://support.microsoft.com/en-us/excel/opening-csv-utf-8-files-correctly-in-excel

コメント