Python struct pack字符大小

时间:2017-03-24 09:17:24

标签: python character-encoding size

有人知道打包后'c'(字符)在第一种情况下使用1字节,第二种情况是2字节,第三种情况是8字节?

>>> from struct import pack
>>> pack('c','A');
'A'
>>> pack('ch','A',1);
'A\x00\x01\x00'
>>> pack('cQ','A',1);
'A\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00'

如何强制字符总是占用1个字节?

1 个答案:

答案 0 :(得分:0)

由于字节对齐而出现问题。如果打包没有对齐使用' ='签名:

pack('=cQ','A',1);

https://docs.python.org/2/library/struct.html#format-strings参考7.3.2.1