0

我正在运行一个从 mysql 数据库获取内容的德国网站。我已将字符集定义为 utf8,如下所示:

<meta http-equiv='Content-Type' content='text/html;charset=utf-8' />

问题是,当从数据库中获取 + 显示内容时,我总是需要使用 utf8_encode 才能获得正确的德语“元音变音”。

我想为我的网站维护 utf8 字符集,因为我必须添加更多具有特殊字符的语言。

关于如何 1:1 回显数据库内容而无需 utf8_encode 的任何想法?

谢谢

4

4 回答 4

2

如果不看您是如何连接到数据库的,就很难判断,但一个常见的问题是数据库连接本身。

打开/选择您需要设置的数据库后:

$db->exec('SET CHARACTER SET utf8');    // PDO

mysql_set_charset('utf8');    // Deprecated mysql_* extension
于 2012-06-28T15:29:06.773 回答
1

每当我想在 PHP 和 MySQL 中使用 utf-8 时,我发现通常这两个函数是你应该在之后使用的函数mysql_connect()

mysql_set_charset('utf8', $link);
mysql_query('SET NAMES utf8', $link);
于 2012-06-28T15:28:00.047 回答
0

在标头中设置内容类型可能会奏效:

header('content-type: text/html; charset=utf-8');
于 2012-06-28T15:25:53.977 回答
0

我有一个类似的问题,我解决了在我的 PHP 文件开头添加这个问题:

ini_set('default_charset', 'UTF-8');
mb_internal_encoding('UTF-8');

此外,检查您是否在没有 BOM 的情况下以 UTF-8 格式保存 PHP 文件非常重要,我对此感到非常头疼。我推荐Notepad++,它显示了当前的文件编码,并允许您在必要时在没有 BOM 的情况下转换为 UTF-8。

如果您想查看我的问题和解决方案,请点击此处

希望它可以帮助你!

于 2012-06-28T18:41:54.663 回答