0

当我输入此代码并从数据库中调用它时,它会将文本显示为问号或字母,它们是阿拉伯字母,所以 UTF8 应该可以工作,但我不知道现在不会。

<?php
header("Content-Type: application/json; charset=UTF-8");

$server   = "";
$username = "";
$password = "";
$database = "";

$con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error());
mysql_select_db($database, $con);

$sql = "SELECT * FROM events WHERE id='1' ";
$result = mysql_query($sql) or die ("Query error: " . mysql_error());

$records = array();

while($row = mysql_fetch_assoc($result)) {
    $records[] = $row;
}

mysql_close($con);

print_r($records);

?>

它显示为结果

Array
(
    [0] => Array
        (
            [id] => 1
            [event] => ????? ?????
            [speaker] => ???? ???????
            [area] => ???????
            [place] => ???? ??????
            [addr] => ??? ???? ????????
            [datefrom] => 2012-10-05
            [dateto] => 
            [timefrom] => 19:26:27
            [timeto] => 
        )

)
4

3 回答 3

0

检查您的数据库是否也使用 UTF-8:

SHOW CREATE DATABASE `your_db_name`

你是如何插入数据的?

还要验证您的 Web 服务器是否配置正确(使用 UTF8)。

于 2012-10-05T17:42:34.527 回答
0

您需要在存储 utf8 的列上设置 utf8 排序规则:

rowname varchar(100) COLLATE utf8_unicode_ci NOT NULL,

...而且联系也很重要(请参阅 Roger Ng 的回答)

于 2012-10-05T18:34:55.687 回答
-1

这是将客户端和数据库之间的连接设置为 UTF-8 的代码

$con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error());
mysql_select_db($database, $con);

mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER_SET_CLIENT=utf8');
mysql_query('SET CHARACTER_SET_RESULTS=utf8');

$sql = "SELECT * FROM events WHERE id='1' ";
$result = mysql_query($sql) or die ("Query error: " . mysql_error());

在开始 SQL 语句之前放置这些代码。

于 2012-10-05T17:46:40.923 回答