-1

私はutf8_persian_ci照合を使用してペルシャ語のサイトに取り組んでいます。

私のPHPコード:

<?php 
header('Content-Type: text/html; charset=utf-8');

$dbhandle = mysql_connect($hostname, $username, $password) 
    or die("Unable to connect to MySQL");

mysql_query("SET NAMES 'utf8'");
mysql_query("SET character_set_connection='utf8'", $dbhandle);

$selected = mysql_select_db("news",$dbhandle);

$str = 'فوتبال، فوتسال';
echo $str . '<br>';
$query = "SELECT * FROM news WHERE link_num='92051810161'";
$result = mysql_query($query);

if (mysql_num_rows($result) == 1) {
    while ($row = mysql_fetch_array($result)) {
        $from_db = $row{'category'};
echo $from_db . '<br>';
    }
}
if ($str == $from_db) {
    echo "string";
}
?>

問題は、コードの最後の条件が XAMP サーバーで機能し、文字列を出力することですが、サーバーでこのコードを実行すると、結果が大きく異なります!

xamp サーバー ( l​​ocalhost ) での結果:

فوتبال، فوتسال
فوتبال، فوتسال
string

サーバーでの結果:

فوتبال، فوتسال
فوتبال، فوتسال

また、strpos()はサーバーでは機能しませんが、ローカルホストでは正しく機能します! サーバー上のクエリの結果は、ローカルホスト上の Xamp サーバーとは異なると思いますが、結果が見つかりません。

データベースのスクリーンショット:

照合DB

ニュース表

4

1 に答える 1

0

を に変更しCharset EncodingUnicode(UTF-8)サーバーbrowserのコードを変更しました。何が起こったのかわかりませんが、問題は正常に解決しました!

于 2013-08-13T11:54:57.407 に答える