0

我正在使用 PHP 和 MySQL 构建一个 HTML 网页,但在运行页面时遇到了瑞典字符 ÅÄÖ 的问题。它们显示为 � 而不是 Å/Ä/Ö。

我已在 HTML 元标记和 PHP 中将字符集设置为 UTF-8:

<?php
    header('Content-type: text/html; charset=UTF-8'); 
?> 

<meta charset="UTF-8">

此外,MySQLutf8_general_ci在所有表上运行排序规则。

所有文件也应编码并保存为 UTF-8,无需 Unicode 签名 (BOM) 和规范化形式。

所有这一切以前都完美无瑕,但今天,无论我尝试什么,我最终都会得到 - 而不是 Å/Ä/Ö。有没有好的方法来调试这个并找到问题?

我的任何步骤是不必要的还是我忘记了什么?

4

3 回答 3

1

从deceze 的文章中你需要的是关于 SET NAMES 的部分:

mysql_set_charset('utf8', $connection); //not mysql_query("SET NAMES 'utf8'");

只需在您的 php 代码的开头添加,在数据库连接启动后

于 2012-08-27T13:42:00.193 回答
0

您可以尝试以 UTF-8 编码保存您的 php 文件。我假设这些文件是用其他东西编写的(可能是 ISO-xxxx 或 ANSI)

要使用 Notepad++ 执行此操作,请选择所有行并复制到剪贴板,在编码菜单中将编码更改为不带 BOM 的 UTF-8,然后粘贴所有内容并保存。

于 2012-08-27T13:42:02.707 回答
0

这仅适用于少数记录还是所有带有瑞典字符的记录?

您可以在浏览器设置中手动更改页面编码 - 这就是您测试它的方式:将其更改为 latin1/iso-8854-1 以查看它是否正确显示这些错误为 utf-8。

可能有人正在使用不支持 utf8 或手动修改编码的浏览器。

还要确保你的数据库连接也是 utf8。( set names utf8;)

于 2012-08-27T13:45:01.110 回答