ASCII "@" 文字をバイナリ形式でファイルに書き込む次のコードがあります。
fin=open('a.bin','wb')
fin.write('\x40')
fin.close()
1バイトの長さの「a.bin」に「@」文字が書き込まれていることがわかります。
ただし、代わりにユニコード文字を書き込もうとすると:
fin=open('a.bin','wb')
fin.write(u'\x40')
fin.close()
「a.bin」はまだ 1 バイト長であることが判明しました。Unicode 文字は 2 バイトなので、長さは 2 バイトにすべきだと思いました。私が見落としていた些細なことがあるかもしれません。