1

这种情况反复发生,非常烦人。我将一些 PHP 代码上传到客户端的服务器。几个星期过去了。他们要求进行更改,我重新下载代码,因为他们已经进行了一些更改。但是,我上次查看时曾经整洁的代码现在到处都添加了额外的空白行。所以现在我在一些代码之间有两行空格,现在有 3 行。我有一堆行粘在一起,因为它们是同一个 for 循环或类似的一部分,它们现在都分散在周围,没有办法来区分它们。

有没有解决这个问题的程序/实用程序?

4

5 回答 5

7

以二进制模式而不是 ascii 上传。Ascii 模式正在将所有换行符(unix 行尾字符)更改为回车 + 换行符(Windows 行尾字符)。

于 2008-11-23T16:37:29.807 回答
1

当您使用空格时(您使用的是空格,对吗?),您也可能在使用制表符的其他编辑器中遇到问题。在 Linux/OSX 和 Windows 上的开发人员之间共享源代码时,我看到了类似的问题。

于 2008-11-23T16:55:06.293 回答
1

我敢打赌这是由于系统试图将在 Windows 系统中创建的文本文件转换为 Unix/Linux 系统正在使用的文件(然后再返回)。

Windows 同时使用回车和换行,我认为 Unix 只使用换行(或者是回车)。

我使用 Ultra Edit 作为我的主要文本编辑器(不是 Emacs 和 vi 不规则 :o),它有 DOS 模式和 Unix 模式来处理这类事情。

于 2008-11-23T16:56:09.113 回答
1

强制您的客户端以二进制模式传输所有文件。当您的文件中有 unicode 文本时,这也很有用,您永远不知道文本模式可能会做出什么假设!

于 2008-11-23T17:30:00.543 回答
1

猜测一下,我会说您是在 Unix/Max 系统上开发,但客户在 Windows 系统上运行(反之亦然)。我还猜想您正在以二进制模式上传/下载文件。Windows 编辑器可能正在将 Unix LF 转换为 LF/CR 对,您的编辑器会将其视为两个新行。如果您以 ASCII 模式上传和下载,文件将在两种格式之间自动转换。

于 2008-11-23T17:45:24.600 回答