0

我有一个中央存储库,用于存储一些二进制 (zip) 文件。客户端可以从该存储库下载特定文件,在本地解压缩它们,然后将生成的文件放在指定的文件夹中。

在某些时候,这会更改存储的 zip 中文件之一的编码。我无法解释为什么会发生这种情况,但确实如此。我自己的文件采用 UTF-8 格式并包含一个字符,其代码点在十六进制编辑器中表示为 C3B3。客户端将这些文件中的至少一个的编码更改为 Windows-1252,以便将字符表示为 F3。对于相同的操作,这发生在他们的机器上,但不是在我的机器上。

有任何想法吗?

4

1 回答 1

2

这一切都检查出来了,0xc3 0xb3 是 ó 的 utf-8 编码,这确实是代码页 1252 中的 0xf3。Zip 档案确实具有代码页意识,它存储字符串。但这仅适用于档案的字典,即文件的名称。和一个可能的密码。永远不要压缩文件本身,它们只是被视为二进制字节。

这里更有可能的情况是客户用来读取文件的任何程序都在进行这种转换。例如可以是记事本。一个很远的镜头是客户使用的解压缩器不知何故知道压缩文件是文本文件,这不太可能。您需要先询问客户他们对 .zip 档案的确切用途。

于 2013-10-24T15:20:17.387 回答