我行依我素 | 苦苦咸咸就是我 | Snailium的个人网站
最近在折腾自己的网站和DV站,打算装个相册上去。
终于找到相册程序了,但都是GB2312编码的。鉴于网站都是UTF-8的,只好用UltraEdit手工转码。
但是,转成UTF-8的程序上传到服务器之后却频频白屏。setcookie和header均出错。这肯定是在header之前有数据输出。
用IE查看源代码,一无所获。用FireFox查看源代码,发现有6个无法显示的空字符。这才想起来是不是编码的问题。
Google了一下,UTF-8用BOM(Byte Order Mark,字节顺序标记)标记字节顺序。BOM一般加在文件头,长度三字节(EF BB BF)。如果程序发现BOM,则自动按照UTF-8处理。
问题就出在BOM上面。PHP是不支持BOM的,所以PHP在处理文件的时候会把BOM直接输出,也就导致了header之前存在输出,从而setcookie和header不起作用。
知道问题,解决起来也不难了。用UltraEdit将文件保存为“UTF-8 无 BOM”就行了。
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
添加评论