我正在开发一个多国语言的网站,理所当然的,我首选 utf-8 作编码,但结果让我大跌眼镜:
在网页中我要用到session,最好的解决方案当然是存在数据库里面。 当我把一大堆代码写好之后,保存为 utf-8 格式,然后运行,出错是少不了的,我一一耐心排除。到了最后,只剩下一个关于 session 的 Fehlermeldung,大喜,胜利就在眼前了,可是我仔细看了代码,在session_start();之前并没有半点输出,但却一直报错:
Cannot send session cookie – headers already sent by…
我昏 。。。
最后,我建了一个空文件,只写入session_start();一个函数,保存为utf-8 格式,报错相同。保存为ANSI 格式,正常。
我百度,哈!和我一样的人还真不少,但没有解决方案。原来,编辑器在utf-8文档前加了一点点信息,方便打开时区分格式。这一点点信息恰巧就加在<?php 的前面,造成了输出。
昏啊,,,千千静听传来了刘欢的《从头再来》。。。
我只好把代码重新转换,欣喜的是,对欧洲来说,iso-8859-1 也是个不错的选择。
看来我对完美的追求在某种程度上是一厢情愿的。但谁又能阻止我呢?
======
6月25号新发现
======
Emeditor 很不错,可以把utf-8前面的那个BOM输出信息去掉,我又可以回来用utf-8国际编码了,这样省去很多转换乱码的环节。这个世界真美好啊。。