6
PythonでBOMを使用するUTF-8をBOMを使用しないUTF-8に変換する
ここに2つの質問があります。私は通常BOMを備えたUTF-8であるファイルのセットを持っています。それらを(理想的には適切に)BOMなしのUTF-8に変換したいと思います。これcodecs.StreamRecoder(stream, encode, decode, Reader, Writer, errors)を処理するようです。しかし、私は実際に使用法の良い例を見ていません。これはこれを処理するための最良の方法でしょうか? source files: Tue Jan 17$ file brh-m-157.json brh-m-157.json: UTF-8 Unicode (with BOM) text また、明示的に知らなくても(ASCIIとUTF-16で見られる)さまざまな入力エンコーディングを処理できれば理想的です。これはすべて実行可能であるように思われます。既知のPythonエンコーディングを取得してBOMなしでUTF-8として出力できるソリューションはありますか? 下から提案された1つのsol'nを編集します(ありがとう!) fp = open('brh-m-157.json','rw') s = fp.read() u = s.decode('utf-8-sig') s = u.encode('utf-8') print fp.encoding fp.write(s) これにより、次のエラーが発生します。 IOError: [Errno 9] Bad file descriptor ニュース速報 コメントで、「r +」/「r + b」ではなく「rw」モードでファイルを開くのが間違っていると言われているので、最終的に質問を再編集して、解決した部分を削除する必要があります。