私は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 サーバー ( localhost ) での結果:
فوتبال، فوتسال
فوتبال، فوتسال
string
サーバーでの結果:
فوتبال، فوتسال
فوتبال، فوتسال
また、strpos()はサーバーでは機能しませんが、ローカルホストでは正しく機能します! サーバー上のクエリの結果は、ローカルホスト上の Xamp サーバーとは異なると思いますが、結果が見つかりません。
データベースのスクリーンショット: