Windows是否在移动或读取时更改编码?

Windows是否在移动或读取时更改编码?,windows,encoding,binary,Windows,Encoding,Binary,我有一个中央存储库,存储一些二进制(zip)文件。客户端可以从该存储库下载特定文件,在本地解压这些文件,然后将生成的文件放在指定的文件夹中 在某些情况下,这会更改存储的zip中一个文件的编码。我无法解释为什么会发生这种情况,但确实如此。我自己的文件是UTF-8格式的,包含一个字符,其代码点在十六进制编辑器中表示为C3B3。客户端将这些文件中至少一个的编码更改为Windows-1252,以便将字符表示为F3。这种情况发生在他们的机器上,而不是我的机器上,用于相同的操作 有什么想法吗?这一切都证明了

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

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


有什么想法吗?

这一切都证明了,0xc3 0xb3是o的utf-8编码,这确实是代码页1252中的0xf3。Zip存档确实具有代码页感知,它存储字符串。但这只适用于存档的字典,即文件名。和一个可能的密码。压缩后的文件本身永远不会被处理,它们只是被当作二进制的字节块来处理


这里更可能的情况是,客户用来读取文件的任何程序都在进行这种转换。例如,可以是记事本。一个很长的距离拍摄是,客户使用的解压器不知何故意识到压缩文件是文本文件,这是不太可能的。您需要通过询问客户他们对.zip存档的具体操作来获得成功。

结果是,我的一位同事做出了一个粗心的决定,使用在线找到的代码片段实现了解压缩。在某一点上,它使用默认的平台编码.Tsk,Tsk将字节流转换为字符流。没想到长途射击会成功:)