Firefox/Chrome/LAMP:UTF-8 - 无效字符



我试图将网站转换为UTF-8。为此,我将PHP文件转换为UTF-8,添加了一个header('Content-Type: text/html; charset=utf-8'),将<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />添加到HTML标头中,将mysql表内容转换为utf-8(ALTER ...),并将MySQL连接编码设置为utf-8。

现在,一切似乎都很好,但有时IE8,Firefox和Chrome显示而不是德语变音符号。IE9 根本没有显示此问题。

刷新后,问题得到解决,但刷新一段时间或几次后,再次显示,....

有什么想法吗?

通常,这种行为是由IE的怪癖模式引起的。如果你的页面不是有效的HTML,浏览器可以回退到quirksmode,你可以检查这个按F12显示开发者工具栏。

如果显示的模式是怪癖模式,您可以通过编写有效的 HTML 来解决您的问题。有离线和在线HTML验证器可用。

如果显示的模式与您的浏览器匹配,则可以使用 W3 检查器查找页面编码问题。

编辑:

此外,请确保在使用连接对象之前设置其编码。你写道,你把MySQL连接设置为utf-8,但你没有写你是如何做到的。

// tells the mysqli connection to deliver UTF-8 encoded strings.
$db = new mysqli($dbHost, $dbUser, $dbPassword, $dbName);
$db->set_charset('utf8');

好的,明白了!

问题是,MySQL客户端编码被嵌入式广告服务器(OpenX)更改。

现在,我在执行"view_local"后将字符集设置回 UTF-8,现在一切似乎都很好!

感谢您的支持,帮助我找到了此问题的根本原因!

最新更新