Shift_JIS・UTF-8・EUC-JP——日本語の文字コードの違いと見分け方
文字化け・文字コードのコラム
日本語を扱っていると、Shift_JIS、UTF-8、EUC-JPといった名前を目にします。
文字化けの相談の多くは、この3つ(と欧文用の文字コード)の取り違えから起きています。
それぞれの成り立ちを知っておくと、化けたときの見当が付けやすくなります。
なぜ日本語は文字化けしやすいのか
英語圏で使われる文字は、アルファベットと記号を合わせても256種類に収まり、1文字=1バイトで表現できます。
一方、日本語はひらがな・カタカナ・漢字を合わせて数千から数万種類あり、1バイトではまったく足りません。
そこで1文字を複数バイトで表す方式が必要になり、その表し方が何通りも作られたという経緯があります。
これが、日本語で文字化けが多い根本的な理由です。
3つの文字コード
- Shift_JIS: Windowsを中心に古くから使われてきた方式です。Windows上での実体はCP932という拡張版で、機種依存文字(①や㈱など)が追加されています。Excelや古い業務システムでは現役です。
- EUC-JP: Unix系のサーバーで広く使われた方式です。かつては日本語のWebサイトでも多く使われていましたが、現在は見かける機会が減っています。古いシステムから出力されたファイルで出会うことがあります。
- UTF-8: 世界中の文字を一つの体系で扱うUnicodeを、バイト列として表す方式のひとつです。現在のWebやアプリケーションの標準で、迷ったらこれを選んでおけばよい、という位置づけになっています。
このほか、メールの本文で使われてきた ISO-2022-JP(JISコード)もあります。
手元のファイルがどれか見分ける
文字コードは、ファイルの中身を見ただけでは確実には判別できません。
バイトの並びから推測することはできますが、短い文章だと複数の候補が成立してしまうためです。
実務的には、次の順で当たりを付けることになります。
- BOMがあるか: 先頭にBOMがあれば、UTF-8(またはUTF-16)と確定できます。
- 開いてみて化けるか: 文字コードを指定して開けるツールで、候補を切り替えながら表示を確認します。読める並びになったものが正解です。
- 出どころから推測する: Windowsの古い業務システムならShift_JIS、Webサービスからのダウンロードなら UTF-8、といった見当が付きます。
2番目が確実ではあるのですが、候補を順に試すのは手間がかかるところです。
MojiRescueの ファイルの文字コード変換 では、ファイルを読み込んだ時点で自動判定した結果と、その文字コードで読んだ場合のプレビューを表示します。
判定が外れていた場合は、その場で文字コードを切り替えて表示を確認できます。
読めた状態を確認してから変換できるので、「変換したけれど中身が壊れていた」という事故を避けやすくなるかと思います。
ファイルの文字コードをブラウザ内で変換
MojiRescueなら、ファイルをドロップするだけで文字コード・BOM・改行コードを変換できます。ファイルは外部に送信されません。