Character encoding 文件编码似乎破坏了已编辑的PHP文件

Character encoding 文件编码似乎破坏了已编辑的PHP文件,character-encoding,ftp,phpstorm,Character Encoding,Ftp,Phpstorm,我有一个用BlueHost托管的WordPress网站。当我FTP到服务器上,编辑WordPress主题文件并重新上传时,我会看到一个带有以下错误的白色屏幕 分析错误:语法错误,中出现意外“}” /home/challey3/public_html/wp content/themes/challengers/page-invoice-payment.php 在线1 代码被直接下载到我的硬盘上并使用PhpStorm进行编辑,我注意到当我在PhpStorm中打开文件时,每行代码之间有一个额外的空行,

我有一个用BlueHost托管的WordPress网站。当我FTP到服务器上,编辑WordPress主题文件并重新上传时,我会看到一个带有以下错误的白色屏幕

分析错误:语法错误,中出现意外“}” /home/challey3/public_html/wp content/themes/challengers/page-invoice-payment.php 在线1

代码被直接下载到我的硬盘上并使用PhpStorm进行编辑,我注意到当我在PhpStorm中打开文件时,每行代码之间有一个额外的空行,而通过记事本编辑时,这些额外的行不存在

对代码的更改是在HTML中添加一个jQuery片段,而没有对PHP本身进行任何修改。撤消添加代码段和重新上载具有相同的效果,但是,如果我执行Git还原并重新上载,问题就解决了


我能想到的唯一一件事是,文件通过PhpStorm/Windows进行了不同的编码,而将其上传回服务器不知何故破坏了一切。服务器正在运行Ubuntu。

PhpStorm在传输(上载或下载)期间不会修改文件。。所以它必须是服务器端(FTP)设置

据我所知,这是关于该文件中使用的行结束+特定FTP服务器配置


我的假设是在上传过程中FTP服务器对
CR
做出反应(用作行尾符号--
CRLF
是Windows使用的),并尝试“修复”将其替换为
LF

FTP服务器可能只是做错了——它不是替换整个
CRLF
而是只在
CR
上执行。。因此,您可能只是以
LFLF
结束(Unix风格的两行结尾——第二行是多余的空行)

如果我是正确的——尝试在IDE中转换该文件,首先使用Unix样式的
LF
作为行分隔符(通过状态栏(编码旁边)或
文件|行分隔符



在任何情况下:这是PhpStorm的问题跟踪器中的记录单——也许有一天他们可以提供更好的解决方案:——观看(star/vote/comment)以获得任何进展的通知。

很可能是该文件+FTP服务器配置中使用的行尾。PhpStorm在传输(上载或下载)期间不修改文件。。所以它必须是服务器端设置(或其他设置)。没有其他关于为什么会这样的想法。。但这是PhpStorm的问题跟踪程序中的问题——顺便说一句,我自己处理过这样的“坏”网站(其中两个)。。而研究它们的人肯定不会使用PhpStorm。。但他们不知怎的取得了这样的结果。有些文件在每行代码之间有4行空行(PHP和HTML代码的大量混合)。。代码仍然工作得很好。谢谢@LazyOne,从这一点上讲,完全是同样的问题。通过FileZilla进入并更改为二进制,这是一个解决方案。请随便加上这个作为答案,我会接受的。所以。。该文件中的行尾是什么(您可以在状态栏区域——编码..旁边或在
文件|行分隔符
中看到它)。尝试使用Unix操作系统(
LF
)。现在我的假设是FTP服务器对
CR
做出反应并试图“修复”它…它当前设置为CRLF,切换到LF也修复了问题。