前提
PythonでAWS S3にCSVを配置するようなシステムをlambdaで作成してます。
そのCSVがExcelですぐ見れるように、文字コードをSJISにしたいです。
何を試しても、S3からダウンロードしてExcelで開くと文字化けします。
どうしたら文字化けせずにCSVを配置することが可能でしょうか。
分かる方がいらっしゃいましたらご回答よろしくお願いいたします。
実現したいこと
AWS S3に配置したCSVをExcelで文字化けせずにすぐ見れるようにしたい。
※サクラエディタなどで開けば文字化けはしないのですが、ITに疎い方が使用するため、Excelで開くことが必須です
発生している問題・エラーメッセージ
Excelで開くと、CSVの中身が 豕ィ譁 のように文字化けしてしまう
該当のソースコード
Python
1csv = "AAA, BBB, CCC" 2csv = csv + str('\n') 3csv = csv + "AAAの中身"+ ',' 4csv = csv + "BBBの中身"+ ',' 5csv = csv + "CCCの中身" 6 7s3 = boto3.resource('s3') 8bucket = s3.Bucket(output_bucket) 9output_key = 'test.csv' 10bucket.put_object( Body=str(csv), Key=output_key, ContentType='text/csv' ) 11
試したこと### ヘディングのテキスト
① ContentType を ContentType='text/csv; charset=shift-jis' に変更して試しましたが変化がありませんでした。
② ContentType を ContentType='charset=shift-jis' に変更して試しましたが、S3へのアップはCSVという名前でできるのですが、ダウンロードしたとき強制的に.csvではなく.txtに変更されてしまいました。
③ csv = csv.encode('shift_jis') でshift_jisに直してアップを試しましたが、b'\x92\x8d\x95\xb... などの文字列のままCSVファイルになってしまい、読むことができませんでした。
補足情報(FW/ツールのバージョンなど)
Python3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/11/25 06:12
2022/11/25 06:15 編集