0

这是协议:

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

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

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

--测试 1 --

下载文件:1529 Ko

新副本文件:1594 Ko

--测试 2 --

下载文件:52 Ko

新副本文件:54 Ko


所以呢?为什么我在这里发这个?因为我的用户可以在我的网站上下载有问题的文件,他们可以用它来替换游戏保存中的文件。但是,游戏通过拒绝新文件来对新文件做出反应,而复制的文件(使用上述协议)可以正常工作。

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

4

2 回答 2

1

这很可能是在 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

另一件要注意的是尾随的“换行符”,它不是很明显。同样,在进行比较之前将其剥离。

于 2012-08-29T05:54:19.803 回答
0

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

于 2012-08-29T05:58:29.280 回答