内容相同的文件大小不同


Files with same content differ in sizes

以下是协议:

1) 我用PHP在线生成了一个包含字母数字字符的文本文件。然后我下载它并记下它的大小(从"属性"菜单)。

2) 我用Notepad++打开文本文件,将所有内容剪切到一个新的文本文件中,然后保存新文件(使用相同的名称)。

3) 令我惊讶的是,即使两个文件的文本内容完全相同,它们的大小也不一样!

--测试1--

下载的文件:1529 Ko

新副本文件:1594 Ko

--测试2——

下载的文件:52 Ko

新副本文件:54 Ko


那又怎样?我为什么要在这里发布这个?因为我的用户可以在我的网站上下载有问题的文件,他们可以用它来替换游戏保存中的文件。然而,游戏对新文件的反应是拒绝它,而复制的文件(使用上述协议)运行良好。

我看到的两个文件之间的唯一区别是它们的大小(如上图所示,略有不同),但内容和名称是相同的。知道为什么会有这种尺寸差异吗?

这很可能是在unix(1字节)和windows(2字节)之间转换的换行符。

正如评论中提到的,它也可能是编码的,但NotePad++非常擅长编码。这也不太可能解释这种差异。

您需要将"''r''n"转换为"''n"以获得较小的文件大小。这是我刚刚找到的一个包含几个选项的页面:http://darklaunch.com/2009/05/06/php-normalize-newlines-line-endings-crlf-cr-lf-unix-windows-mac

另一件需要注意的事情是一条不太明显的拖尾"换行符"。同样,在做比较之前把它去掉。

您的客户端和服务器是不同的平台吗?比如说linux和windows?在这种情况下,换行符的存储方式会有所不同。这可能会导致尺寸差异。另一个原因可能是使用了字符编码,但可能性很小。