崇高文本/代码解析错误,无原因,隐藏字符

我遇到这个问题已有很多年了,但是没有今天那么频繁.这促使我一劳永逸地问这个问题.

有时(今天对于几乎所有逻辑而言),我琐碎的PHP代码都因解析错误而失败.有时PHP是正确的,但通常不会出错,并且再次编写完全相同的代码时,它不会发牢骚.复制和粘贴代码无效,必须再次完整输入.

今天,我已经精确地键入了每个字符,使其完全符合该行的失败要求,然后删除了旧字符,以使脚本正常工作.例如:

1    foreach ($_POST['data_positions'] AS $k => $v) {
2    
3    }

在第1行上引发了解析错误.我将代码撞到了第2行,然后再次写了完全相同的第1行(我检查了几次,每个字符都相同),然后删除了第2行,它起作用了.另一个例子:

1    if (is_numeric($k)) {
2    
3    }

在第1行上也失败.当我重新键入它时,它可以工作.再次复制并粘贴该行不起作用.

我100%确信代码是好的,因此让我相信这是某种编码问题,并且代码的某些部分归因于错误的编码(例如将格式化的文本粘贴到电子邮件中).

我目前正在使用Sublime Text(但在Notepad和旧的Homesite编辑器中也有相同类型的错误解析错误),在OS X上运行MAMP,但是我的Windows台式机上也发生了这种情况.

有人知道我能做什么吗?多次编写代码并让它随机失败对您来说是非常烦人的.

编辑(重新打开):
我仍然无法正常工作.无论是将其粘贴到记事本中还是从头开始键入一个全新的文件.我已经检查了从数据库到服务器再到编辑器的全部内容,它们都使用UFT-8.几乎总是会破坏IF语句(有时我必须键入3到4次才能起作用.琐碎的事情,例如if($a === 3 || $a === 6){}.

编辑(已解决!):
向下滚动以获取解决方案,我自己回答了问题.

解决方法:

我终于找到了答案.我必须通过反复试验找出我做错了什么.

因此,如果您的代码由于隐藏的字符而中断,则当您从UTF-8切换到ISO-8859-1时发现该字符为“”时,如果该字符主要发生在OSX和多个编辑器中(Sublime Text和Sublime Text对我而言,Coda)可能是原因:

在许多操作系统中,当您按Alt键时,将获得正常空间的不间断空间.解析该字符时,许多编程解析器(例如PHP,Xcode)将失败.

要在Sublime Text中修复它,您需要编辑Preferences / Key绑定-User并添加以下行:

{ "keys": ["alt+space"], "command": "insert_snippet", "args": {"contents": " " } },

请记住,键绑定文件是一个包含对象的数组,如果有更多条目,则需要在最后保留.如果是最后一个,请将其删除.

如果您需要在其他任何编辑器中进行修复,请使用Google的“ yourEditor禁用替代空间”.

编辑:

我还注意到alt移位空间的行为相同,因此我在键绑定配置中添加了另一行:

{ "keys": ["alt+shift+space"], "command": "insert_snippet", "args": {"contents": " " } },

上一篇:sublimetext3配置git环境


下一篇:python – 为Sublime Text 3 Anaconda插件设置PATH