0

这里有点奇怪的问题。

我在我的工作机器上使用 FileZilla 和 Notepad++。

基本上每当我上传 PHP 脚本时,所有代码都会变成随机字符

例如这段代码:

<?php echo 'hello world'; ?>

变成

<?php ਍攀挀栀漀 ✀栀攀氀氀漀✀㬀ഀ ?>

我的 FTP 传输模式设置为 ASCII。我做错了什么,是不是一个糟糕的 FTP 设置?

谢谢彼得

4

2 回答 2

1

祝你的新办公室好运!xD

仅当您使用纯文本文件并且只有当您拥有需要正确编码文本文件的代码、脚本时,使用 ASCII 模式的 ftp 传输才(曾经)有用。

ASCII 模式实际上意味着“将此文件作为文本文件处理”

可能需要正确编码的文本文件是“真正的文本文件”: txt、ini、conf(php 输出 html/xml,然后行尾不相关)

由 FTP ASCII 模式对行结束字节进行的替换可能会损坏整个文件,并带有一些编码......实际上这不应该发生在 UTF-8 上,那么显然,您正在使用其他一些编码。 ..

在我看来,在 2012 年,最好保留上传的文件:客户端、脚本和应用程序应该能够正确解析任何系统的任何文本文件。

然后:作为二进制文件上传,并确保您的脚本可以处理任何行尾字节序列

例如,如果您需要按行尾拆分,请使用

// works everywhere with any file with any line ending
preg_split('/\r\n|\r|\n/', $text);

代替

// works everywhere but only with files that contain
// line endings equivalent to the actual PHP_EOL content
explode(PHP_EOL, $text); 

希望已经清楚...随时纠正我的英语!

于 2012-08-04T15:23:23.750 回答
1

您的 ftp 客户端破坏了您输入的字符集。将上传模式更改为二进制,您就完成了。

于 2012-08-04T16:41:53.190 回答