朋友你好,问一下,就是为什么ecshop里的这个index.dwt文件如果我保存成了ANSI编码,就无法转成utf-8。

朋友你好,问一下,就是为什么ecshop里的这个index.dwt文件如果我保存成了ANSI编码,就无法转成utf-8。,第1张

问题一:
文件已经另存为了utf-8码,但关闭后重新打开就自动变成了ansi编码
答:
原因是该文件中没有包含任何中文字符,如果该文件有包含中文字符,将文件另存为utf-8编码后,中文字符会以3个字节的宽度来保存(要看16进制代码),这样,在第二次打开文件时,编辑器会自动将文件识别为utf-8编码。请仔细检查你的indexdwt文件是否包含有中文,没有中文的话,你打几个中文注释保证不会有问题
这里面还存在一个utf-8 bom头的问题,bom头是utf-8文件最开始的3个字节编码,其十六进制码为:EF BB BF,一般情况下编辑器通过判断文件中开头是否存在这三个字节编码,来识别此文件是UTF码或ansi码,但另外还存在一种情况是,utf-8编码文件中在保存时选择了“UTF-8 无BOM”格式(用Ultra Edit编辑器),也就是说移除了bom头三个字节,但文件中的中文是以三个字节的UTF-8编码保存的,一般的编辑器在打开文件时还是能将此文件识别为utf-8编码。但如果文件中既不含中文字符(三字节UTF-8格式编码的),也没有包含bom头标记的,用编辑器打开文件时就会识别为ansi码。
问题二:
为什么有的文件ANSI 和UTF-8两种编码格式都能正常运行呢有的又不行必须要UTF-8,比如languages/admin里的indexphp必须要UTF-8才行,不然会有乱码在后台
答:
ecshop模板 的lbi库文件默认是没有包含中文字符的也没有包含bom头,所有字符都是以ansi编码单字节保存的,所以用编辑器打开时显示的是ansi编码,UTF-8主程序解析时也不会有问题。
而/languages/zh_cn/admin/indexphp文件,没有包含bom头,如果保存为ansi格式,将以2个字节表示中文字符,所以,以3个字节来识别中文的utf-8编码主程序是无法正确解析的,自动就会出现乱码情况。
utf-8编码比较复杂,建议多看看相关的知识。
ECSHOP模板吧 为您解答,我们提供专业的ecshop模板、ecshop英文模板制作服务,请百度搜索”ecshop模板吧“


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13370847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存