UTF-8签名(UTF-8 signature)也叫做BOM(Byte Order Mark),是UTF编码方案里用于标识编码的标准标记。
今天QQ群里说到CakePHP设置Model后输出页面在IE下会无端多出一行。这个基本上和UTF-8签名有关,原因是在运行CakePHP时,包含多个UTF-8文件,如果多个文件设置了签名,在二进制流中就会包含多个UTF-8签名,而IE是无法识别多个UTF-8签名的,所以用一个空行来代替,在某些程序处理中还会出现一个类似“诺”的字符。详细说明请看剑气凌人的这篇文章和W3C关于UTF-8 signature的说明。
解决方法是去掉UTF-8文件的签名,EditPlus和Dreamweaver中均有相应的选项。以EditPlus为例:进入Tools->Preferences->Files,在UTF-8 signature选项中选择“Always remove signature”,重新保存文件即可。
- November 7, 2007
- Post in Coding
PHP代码在dreamwaver中编辑后,多出了不少空行,煞是烦恼。Google了一下解决方案,发现真是麻烦:http://junsheng.itpub.net/post/860/43384
找到了一个非常简单的方法解决这个问题:
- 使用查找替换(Ctrl+H),然后选择”more”选择标签;
- Find what: 三个空行,即三个回车;Replace with: 两个空行;
- 替换。
这样,轻松替换掉没有用的空行。
- July 30, 2007
- Post in Coding
最近公司有一个日文项目,由于之前使用的是自己开发的中文CMS,并没有将语言包分离,在网站建设调试过程中出现了令人头疼的乱码问题。
乱码出现的原因
由于各个字符编码的储存空间不一样,所以当使用不同的字符读取数据时,当字符空间过小,就不能正常显示了。
比如说中文字符的字符集一般是gb2312,如果用utf-8强制读取改变gb2312的字符,就有可能出现乱码。因为utf-8的字符集储存空间大于gb2312,当使用utf-8读取时,有些字符gb2312的编码中是不存在的,不存在的字符自然会出现乱码了。对于静态文件来说,如果文件的储存编码和网页中编码设置(charset)不一致的话,由于以上原因就会出现乱码问题。 Read the rest »
- May 8, 2007
- Post in Coding