当我尝试使用PHP将以下字符编码为JSON时: æ ø å
我只会说null
应该出现的地方。我将页眉编码设置为UTF-8,我知道这个编码会打印这些字母就好了。但由于某种原因,它不起作用。
这是我目前的代码:
header('Content-Type: text/html; charset=utf-8');
if (isset($_GET['count'])) {
$count = $_GET['count'];
$data_exists = mysql_query("SELECT * FROM display");
if (mysql_num_rows($data_exists) > $count) {
// Next record is available
$get_data = mysql_query("SELECT * FROM display LIMIT ".$count.",1");
while ($data = mysql_fetch_assoc($get_data)) {
$id = $data['id'];
utf8_encode($content = $data['content']);
$return_data = array('id' => $id, 'content' => $content);
echo json_encode($return_data);
}
} else {
// Next record is not available
}
}
当我运行此代码时,我得到这个JSON字符串:{"id":"1","content":null}
数据库记录如下:
+------+--------------------------------+
| ID | Text |
+------+--------------------------------+
| 1 | <div class="text">æøå...</div> |
+------+--------------------------------+
当我不使用任何特殊字符时,它可以正常工作。
谢谢你的时间!
答案 0 :(得分:0)
我解决了这个问题。
问题确实是问题中的评论中所述的编码。
我通过在请求数据之前运行以下查询来解决此问题:
mysql_query("SET CHARACTER SET utf8");
仅针对其他用户,他们遇到了类似的问题。