ExcelでCSVを開いたら日本語が「縺ゅ>縺・&縺、」になっていた── 日本語を扱うエンジニアや業務担当者が一度はぶつかる壁が「文字コード」です。 このページでは、Shift_JISとUTF-8がなぜ併存しているのか、BOMとは何か、 そして文字化けが起きる仕組みを順を追って整理します。
文字コードの基本 — 文字を「数字」に変換するルール
コンピュータは内部では数字しか扱えません。「A」という文字も、内部では 0x41(10進で65) という数字として保存されています。この「文字 ↔ 数字」の対応表が文字コードです。 英数字だけならASCII(128文字、1バイト)で済みますが、日本語の漢字・ひらがな・カタカナを表現するには 圧倒的に文字数が足りず、2バイト以上を使う仕組みが必要になりました。
日本語の世界では Shift_JIS(1980年代にマイクロソフトが普及させた日本語規格)とUTF-8(Unicodeをバイト列にする現代の標準)の2つが今も混在しています。 どちらも「あ」という文字を扱えますが、保存しているバイト列がまったく違うため、 Shift_JISで保存されたファイルをUTF-8として読むと文字化けが起きます。
なぜ Shift_JIS と UTF-8 が混在しているのか
歴史的経緯がそのまま現在の混乱を生んでいます。
- 1980年代:日本のPC・OS(MS-DOS、Windows、Mac)が Shift_JIS を採用。 メインフレームや官公庁システムが大量の Shift_JIS データを蓄積。
- 1990年代後半〜2000年代:インターネットの普及で、世界中の文字を扱える Unicode が台頭。 UTF-8 が事実上の世界標準になる。
- 現在:Web・プログラミング・JSON・HTMLは UTF-8 が前提。 一方で Excel・会計ソフト・行政の入稿フォーマットは今も Shift_JIS 前提のものが多い。
この「新しいルールが世界的には主流だが、日本のレガシーシステムはまだ古いルールのまま」 という状況が、文字化けトラブルが今も絶えない最大の理由です。 「相手の環境に合わせて変換する」というスキルが、日本でPC作業をする以上避けて通れません。
よくある文字化けトラブルと原因
| 症状 | 原因 | 対処 |
|---|---|---|
| 「縺ゅ>縺・&縺」のような表示 | UTF-8をShift_JISとして読んでいる | UTF-8で開き直す or BOM付きUTF-8に変換 |
| 「�����」のような ▢ 表示 | Shift_JISをUTF-8として読んでいる | Shift_JISで開き直す or UTF-8に変換 |
| CSVで行が分かれない/全部1行になる | 改行コードがLFのみでExcelが認識できない | CRLFに変換 |
| 先頭行に変な文字が混じる | UTF-8のBOMが文字として表示されている | BOMを削除(BOMなしUTF-8に変換) |
| ①②③やローマ数字(Ⅰ Ⅱ Ⅲ)が消える | Shift_JIS変換時に対応文字が見つからない | UTF-8で保存し直す or 機種依存文字を置換 |
解決アプローチの全体マップ
文字コードまわりのトラブルは、以下のツールを組み合わせると大半が解消します。
- CSV文字コード変換:CSVファイルを Shift_JIS ↔ UTF-8(BOM付き/なし)で変換。 Excel互換のBOM付きUTF-8出力に対応。
- テキスト文字コード変換:CSV以外の汎用テキストファイル向けの変換ツール。
- 文字コード確認ツール:受け取ったファイルが何のエンコーディングか分からないときに自動判定。
- 改行コード変換:CRLF・LF・CRを揃える。 ExcelでCSVが1行になる、Gitで差分が荒れるなどの解決に。
- 全角・半角変換 / ひらがな・カタカナ変換:データクレンジングで頻出の処理。 住所や電話番号の表記ゆれ統一に。
どのツールもブラウザ内で完結するため、業務データや個人情報を含むCSVを 外部サーバーにアップロードする必要がありません。各記事では、エンジニア以外の方でも 理解できるように図解を交えて解説しています。