2

我在名为 c_schools 的 WP 数据库中有一个 Wordpress 安装和一个自定义表。在我的自定义模板页面中,我执行以下查询:

$schools = $wpdb->get_results("SELECT school_id, school_name FROM c_schools ORDER BY school_id");

然后将结果写为 HTML 列表。

学校名称中包含捷克语符号,例如 ě、š,无法正确显示。

整个数据库(包括自定义表)的编码是utf8,排序规则是utf8_general_ci。

当我通过腻子会话在终端的 mysql 应用程序中运行查询时,所有字符都显示正常。

页面的其余部分显示正常,包括菜单中的页面名称,其中也包含这些符号,并且(我相信)是从同一个数据库加载的。

通过 firebug 检查响应标头时,我发现以下内容类型:

Content-Type    text/html; charset=UTF-8

所以看起来真的是服务器端的PHP脚本出错了,可能是wpdb没有配置好?

我究竟做错了什么?


我使用了在这个 SO 页面上找到的建议,并验证了数据库、表和列的编码都是 utf8。


我在我的 wp-config.php 中找到了以下几行,它们似乎是正确的。

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

以下元标记出现在页面的头部。

<meta charset="UTF-8" />
4

0 回答 0