実現したいこと
メールで受け取ったファイルが文字化けしている。(日本語と英語のファイルで日本語部分が文字化け)
文字コード:ANSI
→ Notepad++ でutf-8(bom付き)に変換し文字化けをなおす
→その他諸々の処理
この一連をPythonで自動化したいです。
後半の諸々処理はいけるのですが、文字化けを直す工程はそもそもPythonでも可能でしょうか?
発生している問題・エラーメッセージ
df = pd.read_csv("test.csv", encoding="utf_8_sig")
utfに対してunicode decode errorが出ます
ANSI なので、encoding は cp932 ではないでしょうか。
df = pd.read_csv("test.csv", encoding="cp932")
> df = pd.read_csv("test.csv", encoding="utf_8_sig")
> utfに対してunicode decode errorが出ます
test.csvはutf-8(bom付き)ではないことを表しています。
> メールで受け取ったファイルが文字化けしている。
上記はファイルをどうした際に「文字化けしている」となったのでしょうか?
上のみなさんと同じ質問ですが。
・「メールで受け取ったファイル」を読めるように開くときの文字コードは何ですか?
もしくは、どのように開くと読めますか。
・「Notepad++ でutf-8(bom付き)に変換し文字化けをなおす」 とありますが、そのときの状況と操作を教えてください。 Notepad++でどのように開いて、どのように表示されましたか。 「変換して文字化けをなおす」というのはどのような操作をしましたか。

cp932試してみます。
受け取ったファイルを、csvで開いた際に文字化けしております。文字コードANSIとなっていました。
それを直してから列名変更など加工したいのです。
仕事の依頼で「Notepad++で変換している」としか聞いておりませんでした。私が行なっているものではなく。
この情報では無理があるでしょうか。。
「csvで開いた際に文字化けしております。文字コードANSIとなっていました。」というのは、何を使って開いていますか? Notepad++ ですか?
自分で開いたものではないのですか?
その対象ファイルは入手できませんか? 入手できなければpythonで処理する方法をみつけるのも困難だと思います。

添付されているデータがcsvになっているのでそのままエクセルでcsvを開いた際に文字化けしております。
ファイルそのものはあります。
メモ帳で開き直した際に右下にANSIとありました。
そのファイルをエクセルでなく、たとえばNotepad++で開いて、文字化けせずに開けたときに、右下に文字コードが表示されていますので、それを調べてください。
多くのCSVはExcelで開くと文字化けします。
結局は、その対象ファイルの文字コードがわかれば、pythonで変換することができるということです。

なるほど…!
ありがとうございます。
今すぐ作業に入れないのですが試してみます。
> 添付されているデータがcsvになっているのでそのままエクセルでcsvを開いた際に文字化けしております。
Windowsの場合、ダブルクリックで開くと上記の状況となって困っているという質問をよく見かけます。
文字化けする場合は、データタブの「データの取得と変換」の「テキストまたはCSVから」を選択すると開くことができます。そのときに文字コードも確認できるかと思いますので、それを指定してPythonで開けば良いかと思います。

無事解決いたしました!ありがとうございました!
回答2件