以下是协议:
1)我使用包含字母数字字符的PHP在线生成文本文件。然后我下载并记下它的大小(从“属性”菜单中)。
2)我用Notepad ++打开文本文件并剪切新文本文件中的所有内容,然后保存新文件(同名)。
3)令我惊讶的是,即使两个文件都有完全相同的文字内容,它们的大小也不一样!- TEST 1 -
已下载文件: 1529 Ko
新副本文件: 1594 Ko
- TEST 2 -
已下载文件: 52 Ko
新副本文件: 54 Ko
那又怎样?我为什么要在这里发帖?因为有问题的文件可供我的用户在我的网站上下载,他们可以用它来替换游戏保存中的文件。但是,游戏通过拒绝它来对新文件作出反应,而复制的文件(使用上述协议)可以正常工作。
我在两个文件之间看到的唯一区别是它们的大小(如上所示略有差异) - 但内容和名称是相同的。知道为什么会出现这种尺寸差异吗?
答案 0 :(得分: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
要注意的另一件事是一个尾随的“新线”,这不是很明显。再次,在进行比较之前将其剥离。
答案 1 :(得分:0)
您的客户端和服务器是不同的平台吗?说linux和windows?在这种情况下,存储新行字符的方式不同。这可能导致尺寸差异。 另一个原因可能是使用了字符编码,但可能性稍差。