Codexで文字化けの原因を調べる
公開 2026-09-12 更新 2026-09-12

関連テーマ:表とデータの内容を確かめる
日本語が読めない文字に変わったとき、表示の設定が合っていない場合と、保存済みの内容が変わってしまった場合があります。Codexには、元のファイルを変更せず、文字コードと出力元を確認してもらいます。
文字コードは、文字とファイル内のバイト列を対応させる規則です。この記事ではUTF-8とCP932の小さな例を使い、推測で上書きしない調べ方を紹介します。
まず上書き保存を止める
読めないまま保存すると、その表示を別の文字として書き込む可能性があります。まず元ファイルを別に保管し、どのアプリから出力したか、どのアプリで開いたかをメモします。
拡張子が .txt や .csv というだけでは、文字コードは確定しません。ファイルの内容だけから常に正しく判定できるわけでもありません。出力元の設定が分かるなら、それを手掛かりにします。
各段階で確認してから、次の操作へ進みます。
- 1元を保管読めないまま上書き保存しません。
- 2読み方を調べる出力元と文字コードの候補を照合します。
- 3別名で確認日本語・記号・元の文字列を比較します。
具体的な依頼と、結果の確かめ方は本文にあります。
元のバイト列を保持し、読み方を変えて確かめます。読めた候補があっても、固有名詞や記号まで正しいか確認します。
状況をまとめて依頼する
この練習用ファイルの文字化けを調べてください。元ファイルには書き込みません。
出力元、表示したアプリ、分かっている文字コード設定を整理します。
バイト列と文字コード候補を確認し、候補ごとの読める範囲とエラーを示してください。
読めない文字を無視・削除・置換して成功扱いにしないでください。
候補が複数ある場合は確定とせず、判断に必要な情報を示してください。
実際の個人情報や認証情報を含む部分は、回答へ全文を載せず、必要な範囲に限定します。
既知の文字列で違いを見る
次は、CP932で表した「読書会」をUTF-8として読もうとする説明用コードです。Pythonがある環境で、ファイルを書き換えずに試せます。
raw = "読書会".encode("cp932")
try:
print(raw.decode("utf-8", errors="strict"))
except UnicodeDecodeError:
print("UTF-8では読み取れません")
print(raw.decode("cp932"))
Python 3.12.14で、最初は読み取りエラー、次は「読書会」になることを確認しました。これは文字コードが分かっている材料の例です。どんな文字化けもCP932で直る、という意味ではありません。
errors="ignore" は読めない部分を除外し、replace は置換文字を使います。エラーを消すためだけに使うと、元の情報が落ちたことに気づきにくくなります。
UTF-8の先頭の印も確認する
UTF-8のファイルにはBOMという先頭の印が付く場合があります。Pythonの utf-8-sig は、その印が先頭にあれば読み取り時に取り除きます。
CSVの最初の列名だけが一致しない場合にも、先頭の印を確認する意味があります。ただし「UTF-8にBOMを付ければ何でも直る」わけではありません。出力先が求める形式に合わせます。
確認できた形式で別名保存する
元の文字コードと日本語・記号が正しく読めることを確認したので、UTF-8の別名ファイルを作ってください。
元ファイルは変更しません。保存先が存在したら上書きせず報告します。
改行と本文は維持し、保存後に読み直して元の文字列と比較してください。
BOMの有無は利用先の条件に合わせ、選んだ形式を報告してください。
すでに ? などへ置き換えて保存された情報は、文字コードを変えるだけで復元できない場合があります。その場合は元の出力やバックアップへ戻ります。
列のずれはCSVの構造確認、文章の表現を整える作業は意味を保つ文章整理へ進めます。実測したのはPythonによる小さな文字列の変換で、Codexモデルの自動判定精度や各アプリの保存操作ではありません。
このテーマを続けて読む
列ずれ・重複・型・文字コードを確認し、元の情報を残して変換します。
表とデータの内容を確かめるの記事をまとめて見る