CSV文字化け:原本を残して確認するメモ 全名称・レコード・処理履歴・結果は架空の教材です。実顧客情報、Excel/Sheetsの画面操作、外部AIへの送信や書出元への連絡はありません。Pythonを使わず、本文の結果とこの手順を読んで確認できます。 1. 受け取った原本をそのまま別に残し、確認用コピーで作業します。文字が変に見える画面から、そのまま原本へ上書き保存しません。元ファイル名・入手元・書出日時・利用した出力形式を控えます。 2. 書出元の仕様や担当者から文字コードとBOM条件を確認します。読めたから、BOMがないから、という理由だけで文字コードを確定しません。分からなければ仕様確認を残します。 3. D01のsource-utf8.csvは、record_id/customerの2列、データ1行、C01/山手工房というUTF-8教材原本(38bytes)です。同じ原本をCP932 strictで読むと名称は螻ア謇句キ・謌ソとなりますが、原本自体は変えていません。既知のUTF-8で同じ原本を読み直すと山手工房に戻ります。これはCP932の全ShiftJIS互換や、実ソフトで同じ見た目になる保証ではありません。 4. D03では別の可能な元名称を示すalternative-source-utf8.csv(C01/東町企画、38bytes)も読みます。AとBは別の可能性を比べる教材で、同じ台帳に2件を登録する例ではありません。両方の名称だけをASCII replaceで置換すると、lossy-name.csv(C01/????、30bytes)と同じ出力になります。????だけでは山手工房か東町企画か選べません。 5. 実務で?やU+FFFDを見ただけでは、この置換履歴があったと決めません。保存前の原データ、元の書出ファイル、加工履歴と比べ、必要なら書出担当に該当IDの名称と形式を再確認します。AIや似た名称から補完しません。 6. D02のsource-utf8-bom.csvは41bytesで、元38bytesへEF BB BFの3bytesを付けた比較版です。BOMを扱うutf-8-sigで読むと同じ文字、通常のutf-8では見出し先頭にU+FEFFが残ります。BOMは全ソフト共通の必須条件でも文字復元機能でもありません。 7. 読み直した後は文字が自然かだけで終えず、C01の名称、列名、2列・データ1行であることを元データと照合します。実際の取り込み先での型や列分割は別の確認です。 8. 確認sheetのD01/D02/D03は、仕様と結果が分かっている教材の記入例。実ファイルでは未確認の仕様や履歴をそのまま未確認にし、何が分かれば再読込・再依頼を決められるか残します。 原本比較4CSVのbytesは選定時から不変です。空欄/記入sheetはUTF-8 BOMの値のみ、式・自動修復・履歴保存はありません。座標や先頭ゼロの処理はこの教材の主題ではありません。Office/Excel/Sheetsの実読込は未確認。コピーを使い、列区切りと文字を元の記録に照らしてください。