Python如何从unicode字符串中获取空填充字节字符串

时间:2015-01-05 19:33:38

标签: python unicode

我确信有人应该能够在这里帮助我,因为感觉就像这么简单的答案,但我无法在任何地方找到它。我需要编写一个unicode字符串(基本上是空填充ascii),但是它没有按预期工作,无论我从互联网上尝试什么,它最终都是纯粹的ascii。

with open('test.txt', 'wb') as oFile:
    name = u'AAA'
    oFile.write(name)  //always writing 0x414141 i want 0x410041004100

只是为了澄清,虽然这个问题已经回答了,如果有人在这里徘徊,用例是它是一个混合二进制文件(这里是一个int,一个unicode字符串,一个struct等)我正在编辑地点。我真的只是希望能够按照它在文件中表示的方式编写字符串(' AAA' as 0x410041004100而不是0x414141)

2 个答案:

答案 0 :(得分:2)

您可以将.encode()方法与适当的编解码器一起使用:

>>> name = u"aaa"
>>> name.encode("utf_16")
'\xff\xfea\x00a\x00a\x00'

开头的\xff\xfeByte Order Mark (BOM)。您的申请可能需要也可能不需要,如果不需要,您可以将其删除。

答案 1 :(得分:0)

您可以使用codecs模块在​​打开文件时指定编码:

import codecs
with codecs.open('test.txt', 'wb', encoding='utf-16') as oFile:
    ...

更多信息: