【総集編】文字化けの正体:文字コードの基礎と、日本語環境で気をつけること

 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

コメント

タイトルとURLをコピーしました