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 に答える