字符集错误,php smarty mysql


Charset error, php smarty mysql

我最近遇到了一个关于元字符集的奇怪问题。

如果我没有在标题中设置任何字符集,则所有重音(如 é,è,à..)都会正确显示(甚至是来自 php 的 var),除了来自我的数据库的文本被菱形中的小问号替换。

如果我在我的标题中设置其中一个(我都尝试了它们)字符集

<meta http-equiv="Content-Type" content="text/html" charset="iso-8859-15" />
<meta charset="UTF-8">

我的数据库中的文本还可以,但其余所有文本都显示小问号而不是重音。

我的数据库字符集是 UTF-8 unicode,排序规则是UTF_8 general_ci。

请注意,我使用的是 smarty,但我没有更改配置中的字符集,因为他的默认值是 UTF-8。

好的,我找到了一个解决方案,我正在使用 ORM,我只在 setConnection 方法中添加 charset=utf8,如下所示

$config->set_connections(array(
    'development' => 'mysql://user:pass@localhost/mydb;charset=utf8')
);