擅长:python、mysql、java
<p>首先,我要说的是C代码不适合跨平台使用。长度头的字节顺序取决于基础架构,因为<code>BitConverter.GetBytes</code>以架构的任何顺序返回字节</p>
<p>但是,对于C#,我们可能指的是windows,也可能指的是Intel,所以很可能是Little Endian</p>
<p>所以,您需要做的是将原始数据的长度以小的Endian顺序预先添加到压缩数据中。正好是4个字节</p>
<pre><code>bdata = data.encode('utf-8')
compressed = gzip.compress(bdata)
header = len(bdata).to_bytes(4,'little')
</code></pre>
<p>然后,您需要连接并转换为base64:</p>
<pre><code>print(base64.b64encode(header + compressed))
</code></pre>