CSVの文字化けを直す方法(Shift-JIS⇔UTF-8)
公開日:2026年7月8日(最終更新:2026年7月12日)|カテゴリ:CSV系
文字化けの正体:「書いた文字コード」と「読む文字コード」の不一致
コンピュータは文字を番号(バイト列)で保存しており、その番号と文字の対応表が「文字コード」です。日本語のCSVで使われる対応表は主に2つあります。
- Shift-JIS(正確にはCP932):日本語版Windowsで長く標準だった文字コード。日本語版ExcelでCSVを保存すると、既定ではこの形式になります
- UTF-8:世界中の文字を扱える現在の標準。Webシステム・kintoneなどのクラウドサービス・プログラムの多くはこちらを前提にしています
文字化けは、Shift-JISで書かれたファイルをUTF-8の対応表で読む(またはその逆)ときに起きます。番号と文字の対応表が違うのだから、別の文字に化けるのは当然、という単純な理屈です。ファイル自体が壊れているわけではないので、正しい対応表で読み直せば元どおりに読めます。
症状から原因を見分ける
化け方には特徴があり、見た目からおおよその原因を推定できます。
- 「縺ゅ→縺」のような漢字の羅列:UTF-8のファイルをShift-JISとして読んでいる典型例。Webシステムから出力したCSVをExcelで直接開いたときによく起きます
- 「�」(菱形に?)が並ぶ:UTF-8として読めないバイトを置き換えた印。Shift-JISのファイルをUTF-8前提のシステムに取り込んだときに出がちです
- 一部の文字だけ化ける・消える:「①」「㈱」「﨑」「髙」などの機種依存文字が原因のことが多いです(後述)
直す方向の決め方
「どちらに変換するか」は、そのファイルを最終的にどこで使うかで決めます。
- Excelで作ったCSVをWebシステムやkintoneに取り込みたい → Shift-JIS→UTF-8
- システムから出力したCSVをExcelで開きたい → UTF-8→Shift-JIS、またはUTF-8(BOM付き)に変換
- 元の文字コードが不明 → 自動判定で読み込んで、取り込み先が求める形式で書き出す
変換はCSV文字コード変換ツールで行えます(ブラウザ内処理のため、顧客名簿のようなファイルでもサーバーに送信されません)。
BOMという第3の登場人物
UTF-8にはもう1つ、「BOM(バイトオーダーマーク)」という落とし穴があります。BOMはファイルの先頭に付ける「これはUTF-8です」という目印で、あってもなくてもUTF-8はUTF-8なのですが、読む側の解釈が分かれます。
- Excel:BOMがないUTF-8のCSVを正しく認識できず、文字化けすることが多い → Excelで開く予定ならBOM付きが安全
- 一部のシステム・プログラム:逆にBOMを「余計な1文字」として誤読し、先頭列の項目名がずれる不具合の原因になることがある → システム取り込み用はBOMなしが無難
「Excelでは開けるのにシステムに取り込むと1列目だけエラーになる」という症状が出たら、BOMを疑ってみてください。
変換しても直らない「機種依存文字」
丸数字(①②)、株式会社の略字(㈱)、旧字体の名前(﨑・髙・彅など)は、Shift-JISの規格外をWindowsが独自拡張した文字(CP932)です。取り込み先のシステムが厳密なShift-JISしか受け付けない場合、文字コード変換を正しく行ってもこれらの文字だけエラーや化けが残ることがあります。顧客名簿の取り込みでこの問題に当たった場合は、該当文字を常用の字体(崎・高など)に置き換えるか、取り込み先がUTF-8に対応しているならUTF-8で取り込むのが現実的な回避策です。
よくある質問
Q. 変換したのにまだ文字化けします。原因は?
A. 元ファイルの文字コードが、選んだ変換元と異なっている可能性が高いです。「自動判定→UTF-8」を選び直すか、逆方向(UTF-8→Shift-JIS)も試してください。それでも直らない場合は、ファイルがそもそもCSVではなくExcel形式(.xlsx)である、EUC-JPなど別の文字コードである、といったケースが考えられます。
Q. 文字化けしたまま保存してしまったファイルは元に戻せますか?
A. 「読み込み方を間違えて画面上で化けて見えている」だけなら、正しい文字コードで読み直せば戻ります。ただし、化けた状態のデータを上書き保存してしまった場合は元の文字情報が失われているため復元できません。元ファイルは残したまま作業するのが鉄則です。
変換後のCSVの中身はCSVビューアー・整形で表形式にして確認できます。