这两天被一个客户的网站系统搞得很头痛的,开发的好好地不知道哪里错了,新建的文件都是不能正确执行的。
怎么检查代码都是不正确的,噢,文件是PHP的文件,经过调试,最终定位在凡是require_once进来的文件都是不会被初始化的。
奇怪的是,原先的程序代码是可以的,但是一旦修改了,就会出现空白的情况。
一直翻查程序文件都没问题。
终于在调试的过程不断的变换编码中发现一个问题:就是程序里面的代码会莫名其妙的成了“乱码”直接显示出来了。
好吧,引入今天的话题吧。
文件的格式虽然都叫做纯文本,但是他们的存储格式还是有不同的,比如这个文件格式就分unxi、dos、mac。
文件格式之外,存储的内容还有编码的区别,比如utf-8、ansi等的区别。
同一个编码还存在有BOM没有BOM的区别。
当然,还有CRLF与LF的区别,天呐,真的会疯了的。
我不就想要好好编个程嘛~
下面就是使用notepad++来查看这些内容的。
第一、文档格式
编辑、文档格式转换
转换为Windows格式
转换为UNIX格式
转换为MAC格式
当前的文档格式会成灰色。
VI操作:
set fileformat=[unix|dos]
这个决定下面换行符的行为模式。
第二、CRLF与LF的查看
视图、显示符号、显示全部字符
然后你会发现,全部的字符后面都增加了CRLF或者LF了,具体是根据你的文档格式来定的。
这个决定行与行之间是什么关系,比如本来应该单行注释一行,紧跟一行正确代码,然后这个不正确的话就变成了同一行了,然后文件就错了。而使用这些智能的编辑器,他显示是自动转换的,结果你是死活不知道原来他的处理已经并成一行了。
第三、存储的编码
编码、选择合适的编码
这个决定文件的字符是正常文字还是“乱码”。
这样子之后就正常了~