コンテンツへスキップ

Blog

文字化けは「壊れた」のではない — 読み方が違うだけ

約3分運営者が書いています

CSVをExcelで開いたら「�」だらけになった。この瞬間、ファイルが壊れたと思ってしまいますが、たいていの場合そうではありません。

中身は無傷で、読み方だけが食い違っています。 だから正しい読み方で開き直せば、そのまま元に戻ります。ここが分かっていないと、まだ読めるファイルを捨ててしまうことになります。

E3 81 82 E3 81 84
UTF-8として読む
あい
Shift_JISとして読む
ãģĤãģĦ
ファイルの中身は1バイトも変わっていません。変わったのは解釈だけです。
同じ並びのバイトでも、どの規則で読むかによって別の文字になる。壊れているわけではない。

なぜCSVがExcelで化けるのか

日本語圏でいちばん多いのがこれです。いまのシステムが書き出すCSVはたいていUTF-8ですが、Excelは拡張子が`.csv`のファイルを、環境によってはShift_JISとして開こうとします。中身はUTF-8なのに、Shift_JISの規則で読むので化けます。

解決策は主に3つあります。

  1. BOM付きのUTF-8で保存する — 先頭に「これはUTF-8です」という短い目印を付ける方法です。ExcelはこれがあるとUTF-8として開きます。もっとも手軽で、相手に手順を説明しなくて済みます。
  2. Excelの「データ」→「テキストまたはCSVから」で読み込む — 開くのではなく取り込む形にすると、文字コードを選べます。ファイルを触らずに済むのが利点です。
  3. Shift_JISで書き出してもらう — 相手のシステムが対応していれば確実ですが、Shift_JISで表せない文字が落ちるので、いまは第一候補にはしにくいです。

ほかによくある化け方

  • メールの件名だけ化ける — 件名は本文と別の方法で符号化されています。古いソフトが送ったものは、いまのソフトで読めないことがあります。本文が読めるなら、ファイル自体の問題ではありません。
  • 「①」「㈱」「Ⅲ」が化ける — 機種依存文字です。環境によって割り当てが違うので、相手先で別の文字や空白になります。社外に出す文書では避けるのが無難です。
  • 「〜」だけ化ける — 波ダッシュには見た目のよく似た2種類(U+301CとU+FF5E)があり、変換の途中で取り違えられることがあります。日本語のテキスト処理で昔から続いている厄介ごとです。
  • 半角カナが消える・化ける — 古い規格の名残で、扱いが環境ごとに違います。全角に直しておくと事故が減ります。

直すための道具

CSVの中身を確かめたいときは、CSV ⇄ JSON 変換に貼り付けると、どう読み取られたかが表として出ます。区切り文字も選べるので、タブ区切りで書き出されたものも扱えます。読み取り結果を見れば、化けているのが文字コードのせいなのか、区切り方のせいなのかを切り分けられます。

半角カナや記号の揺れをまとめて直したいときは、全角・半角変換が使えます。英数字だけ半角にしてカナは全角のまま、といった指定ができるので、住所録のような表の整形に向いています。

まとめると、文字化けを見たらまず「読み方が違うだけ」を疑う。元のファイルを保ったまま、別の文字コードで開き直してみる。この順番でやれば、たいていは何も失わずに済みます。

この記事で紹介したステム分離は、ブラウザで無料で試せます(登録不要・音源は端末から出ません)。

次の記事

約3分QRコードが「刷ってから読めない」を防ぐ

QRコードを作るのは簡単ですが、印刷してから読めないという事故はよく起きます。余白・誤り訂正・色・大きさの4点と、短縮URLの落とし穴をまとめました。

記事一覧へ

スポンサーリンク