我有一个中央存储库,我存储了一些二进制(zip)文件。客户端可以从此存储库下载特定文件,在本地解压缩,然后将生成的文件放在指定的文件夹中。
在某些时候,这会更改存储zip中某个文件的编码。我没有解释为什么会发生这种情况,但确实如此。我自己的文件是UTF-8,包含一个字符,其代码点在十六进制编辑器中表示为C3B3。客户端将至少一个这些文件的编码更改为Windows-1252,以便将该字符表示为F3。这种情况发生在他们的机器上,但在我的机器上却没有,因为同样的操作。
有什么想法吗?
答案 0 :(得分:2)
这一切都检出,0xc3 0xb3是ó的utf-8编码,在代码页1252中确实是0xf3 .Zip档案确实有代码页感知,它存储字符串。但这仅适用于存档的字典,文件的名称。还有一个可能的密码。从来没有对压缩文件本身,它们只是被视为二进制blob字节。
这里更可能出现的情况是,客户用来读取文件的程序正在进行此转换。可能是记事本的例子。一个非常长距离的镜头是客户使用的解压缩器以某种方式意识到压缩文件是一个文本文件,这是不太可能的。您需要向客户询问他们对.zip存档的确切操作。