问:
ecshop模板与程序里ANSI和UTF-8格式有什么区别?有的文件原本是utf-8的然后我用记事本打开后,变成ANSI格式的了,比如language/admin里的这个index.php文件,原本从网站上下载下来是utf-8编码的,如果我用记事本打开编辑,然后保存,再用editplus打开,发现在编码自动变成ansi的了,如果这里我把这个文件上传到空间上去覆盖原文件,再进入网站后台就会发现后台的很多文字变成了乱码,并且文件的尺寸也比刚下载下来的时候小了,是什么回事呢?有的文件用记事本打开编码却不地变,不明白是什么原因。有朋友能告诉我原因吗?两种文件有什么不同?
答:
如果你下载的是utf-8编码的ECSHOP模板,而且编辑的文件代码中有包含中文(如中文注释),在编辑文件并保存时要保存为utf-8编码格式,否则会造成乱码或奇怪的页面显示问题。
有些编辑器如记事本或frontpage可能在保存文件时,自动将文件保存为ascii格式,这样就会造成你说的问题。ascii编码是用一个字节表示,而utf-8编码是用3个字节表示,文件尺寸会比ascii的文件大,所以,在编辑文件时,最好用editplus或ultraedit之类的专业编辑器,能很好的支持UTF-8编码,另外还要注意utf-8 bom头的问题,在保存时最好选择保存为utf-8无bom头的格式,这样会避免出现很多奇怪的问题。
另外还要注意html页头代码中的meta标签<meta http-equiv=”content-type” content=”text/html;charset=gb2312″> 与<meta http-equiv=”content-type” content=”text/html;charset=utf-8″> 的区别,如果这里设置的编码与文件本身的编码格式不一致也会造成乱码。