-2

わかりました、データベース (phpMyAdmin) を調べていくつかの結果を表示する Web があります (基本的にサーチャーです)。問題は、アクセント付きの文字を含むこのデータベースからの結果を表示するときに発生します。Web のページは utf-8 で体系化されており、このデータベースを php で呼び出す場合を除いて、Web のすべてのコンテンツはアクセント付き文字を受け入れます。また、データベース、テーブル、およびフィールドの照合を ut8-general-ci に配置しました。私は解決策を見つけるのに多くの時間を費やしましたが、それは思いつきませんでした。データベースの情報を呼び出すときに、コードを (php で) 残します。

... some code



//We select the webs with the same keywords (coincidences). 
//We order first the search in the same language. All ordered by Title.
$result = mysql_query("SELECT * FROM Webs WHERE Keywords LIKE '%$search%' ORDER BY CASE WHEN Language='English' THEN 0 ELSE 1 END, Title", $link);

if ($row = mysql_fetch_array($result))
{ 
//We start the list of results
echo "<ul>"; 
  do 
  {
      //One list element
      echo "<li>"; 
      echo "<a href=http://".$row["Url"].".html><b>".$row["Title"]."</b></a><br/>"; 
      echo "<a href=http://".$row["Url"].".html>".$row["Url"]."</a><br/>"; 
      echo "".$row["Description"]."<br/>"; 
      echo "</li><br/>"; 
    } 
    while ($row = mysql_fetch_array($result)); 

    //We end the list of results
    echo "</ul><br/>"; 
} 
else 
{ 
    echo "<p>No register has been found !</p>"; 
} 
?> 

どんな助けでも歓迎されます。

4

1 に答える 1

2

接続後にmysql_set_charsetを使用してみてください

$connect = mysql_connect('localhost', $user, $password);
mysql_set_charset('utf8', $connect);

PS

mysql_* 関数は非推奨です。使用しないでください。PDO または MySQLi への切り替えを検討してください。

于 2013-08-28T19:50:21.200 に答える