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コード)もあります。

手元のファイルがどれか見分ける

文字コードは、ファイルの中身を見ただけでは確実には判別できません。
バイトの並びから推測することはできますが、短い文章だと複数の候補が成立してしまうためです。

実務的には、次の順で当たりを付けることになります。

  1. BOMがあるか: 先頭にBOMがあれば、UTF-8(またはUTF-16)と確定できます。
  2. 開いてみて化けるか: 文字コードを指定して開けるツールで、候補を切り替えながら表示を確認します。読める並びになったものが正解です。
  3. 出どころから推測する: Windowsの古い業務システムならShift_JIS、Webサービスからのダウンロードなら UTF-8、といった見当が付きます。

2番目が確実ではあるのですが、候補を順に試すのは手間がかかるところです。

MojiRescueの ファイルの文字コード変換 では、ファイルを読み込んだ時点で自動判定した結果と、その文字コードで読んだ場合のプレビューを表示します。

判定が外れていた場合は、その場で文字コードを切り替えて表示を確認できます。

読めた状態を確認してから変換できるので、「変換したけれど中身が壊れていた」という事故を避けやすくなるかと思います。

ファイルの文字コードをブラウザ内で変換

MojiRescueなら、ファイルをドロップするだけで文字コード・BOM・改行コードを変換できます。ファイルは外部に送信されません。

ツールを使う