バイナリファイルにユニコード(utf-8)を書き込む方法が不思議です。ここに背景があります:私は40バイトのヘッダ(10 ints)と、可変数のトリプルint構造体を持つテーブルを持っています。これらを書くことはケーキでした。Pythonでバイナリファイルにユニコードを書く
ここで、ファイルの最後に一連の文字列を追加します。通常のASCIIベースの文字列を書く
は簡単です:
value = ('ab')
s = struct.Struct('2s')
packed_data = s.pack(value)
私はInterpret strings as packed binary dataからこれを行う方法を学びました。
しかし、ユニコード(utf-8)ベースの文字列でこれを行う方法はありますか?
アイデア?誰もこれを前にしたことがありますか?
あなたが達成しようとしていることは明確ではありません。 UTF-8は_character_ dataをエンコードする方法です。バイナリデータの書き込みには関係がありません。実際に、UTF-8ストリームに任意のバイナリデータを書き込むと、誤って無効なエンコーディングが導入された場合にエラーが発生するはずです。いくつかのサンプルデータと期待される出力を明確にしてください。 –
UTF-8 *は*バイナリデータであり、Unicodeではありません。 Unicodeの標準的なリンク:http://www.joelonsoftware.com/articles/Unicode.html –