【Excel】CSV保存で「日本語が?に化ける」!UTF-8形式による保存と文字コードの技術的選択

【Excel】CSV保存で「日本語が?に化ける」!UTF-8形式による保存と文字コードの技術的選択
🛡️ 超解決

Excelで編集したデータをCSV形式で保存し、再度開いたり他システムにアップロードしたりした際、特定の漢字や記号が「?(クエスチョンマーク)」に置き換わってしまうことがあります。これはデータの破損ではなく、保存時に選択した「文字コード」が、その文字を表現できない規格であったために発生する論理的な情報欠落です。

日本語版Excelの標準的なCSV形式は「Shift-JIS(CP932)」という規格を採用していますが、この規格では環境依存文字やUnicode固有の文字(ハングル、絵文字、一部の旧字体など)を保持できません。本記事では、すべての文字を正確に保持するための「CSV UTF-8」形式での保存手順と、システム連携において重要となる「BOM(バイト順マーク)」の有無による技術的選択について詳説します。

結論:文字化け・「?」化を防ぐ3つの技術的解決策

  1. 「CSV UTF-8(コンマ区切り)」形式で保存する:Unicode文字をすべて保持できる現代の標準規格を選択します。
  2. メモ帳を経由してBOMを除去・付与する:連携先システムの仕様に合わせて、文字コードの細かな属性を調整します。
  3. Power Queryでインポート時のエンコードを固定する:読み込み段階で正しい文字コード(932または65001)を定義します。

1. 日本語が「?」に化ける技術的背景:文字コードの限界

Excelで「名前を付けて保存」から単純にCSVを選択すると、多くの場合は日本国内のレガシーな標準である「Shift-JIS」で書き出されます。文字が「?」になる現象は、この規格の限界によって引き起こされます。

不整合が発生するメカニズム

  • 規格外文字の切り捨て:Shift-JIS(CP932)は、約1万文字程度の文字セットです。これに含まれないUnicode固有の文字(例:森󠄁の「はしごだか」、あるいは特殊記号)が含まれている場合、Excelは保存時に「変換不能」と判断し、代替文字として「?」を書き込みます。
  • 不可逆的なデータ損失:一度「?」として保存されてしまったデータは、元の文字情報が破棄されているため、後から文字コードを変えても復元できません。
  • BOMの有無による誤認:UTF-8形式には、先頭に「これはUTF-8です」という識別信号(BOM)を付ける形式と付けない形式があります。Excelが書き出すUTF-8は「BOM付き」ですが、古いシステムではこのBOMを解釈できず、先頭行が文字化けすることがあります。

2. 手順①:「CSV UTF-8」形式での保存

現代の多言語環境や特殊文字を含むデータを保存するための、最も標準的な手順です。

  1. Excel画面左上の「ファイル」タブ > 「名前を付けて保存」をクリックします。
  2. 保存先を選択し、ファイルの種類(拡張子)のドロップダウンメニューを開きます。
  3. リストの中から「CSV UTF-8(コンマ区切り)(*.csv)」を選択します。
  4. 「保存」をクリックします。

この形式で保存することで、世界中のほぼすべての文字を「?」にすることなく保持できます。

3. 手順②:メモ帳によるBOMの制御(システム連携用)

保存したUTF-8 CSVが他システムでエラーになる場合、BOMの有無を調整する必要があります。

  1. 保存したCSVファイルを右クリック > 「プログラムから開く」 > 「メモ帳」を選択します。
  2. メモ帳の「ファイル」メニュー > 「名前を付けて保存」を選択します。
  3. 「エンコード」のドロップダウンから適切なものを選択します。
    • UTF-8:BOMなしで保存されます(多くのWebシステムやLinux環境用)。
    • UTF-8 (BOM付き):Excelで直接開く際に文字化けさせたくない場合。
  4. 保存をクリックして上書きします。

4. 手順③:Power Queryを用いたインポート時の正規化

CSVを開く際にすでに化けている場合、ダブルクリックではなく「取り込み」の段階で文字コードを指定します。

  1. 「データ」タブ > 「テキストまたは CSV から」を選択します。
  2. 対象のCSVファイルを選択してインポートします。
  3. プレビュー画面上部の「元のファイル」ドロップダウンを確認します。
    • 932: 日本語 (シフト JIS):従来のCSVの場合。
    • 65001: Unicode (UTF-8):現代の標準的なCSVの場合。
  4. プレビューで文字化けが解消されていることを確認し、「読み込み」を実行します。

5. 技術仕様:文字コード別の特性と推奨用途

規格名 Excelでの表記 「?」化リスク 主な用途
Shift-JIS (CP932) CSV (コンマ区切り) 高い(特殊文字不可) 国内の古い会計ソフト等。
UTF-8 (BOMあり) CSV UTF-8 (コンマ区切り) なし(全文字保持) 現代のExcel間でのデータ交換。
UTF-8 (BOMなし) (メモ帳等で変換) なし(全文字保持) Webサービスへのインポート。

まとめ:保存形式の選択でデータの完全性を担保する

Excelで日本語が「?」に化ける問題は、データの破損ではなく、文字コードの規格容量をオーバーした際の情報欠落に起因します。旧来の「CSV(コンマ区切り)」形式は、日本のビジネスシーンで長く使われてきましたが、多言語や特殊記号を扱う現代のデータ運用においては、すでに論理的な限界に達しています。

実務においては、まず「CSV UTF-8」を選択してすべての文字情報を保護することを最優先してください。その上で、連携先のシステムがBOM(識別信号)を処理できない場合に限り、メモ帳等を用いて属性を微調整する。この技術的な切り分けを行うことで、文字化けによるデータの再作成や不整合を根絶することが可能になります。用途に応じた正しいエンコーディングを選択し、正確なデータ流通を実現してください。