这里有点奇怪的问题。
我在工作机器上使用FileZilla和Notepad ++。
基本上每当我上传PHP脚本时,所有代码都变成随机字符
例如这段代码:
<?php echo 'hello world'; ?>
变成
<?php 攀挀栀漀 ✀栀攀氀氀漀✀㬀ഀ ?>
我的FTP传输模式设置为ASCII。我做错了什么,这是一个糟糕的FTP设置吗?
由于 彼得
答案 0 :(得分:1)
使用ASCII模式的ftp trasfer仅在您使用纯文本文件时才有用,并且只有在您需要正确编码文本文件的代码(脚本)时才有用。
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);
希望能够清楚......
随意纠正我的英语!
答案 1 :(得分:1)
您的ftp客户端会阻止您输入的字符集。将上传模式更改为二进制,您就完成了。