2011-01-19 7 views
0

私はutf-8エンコーディングのページを持っています。 MySQLはutf8_general_ciに設定されています。ここ はクエリです:PHPのmysqlクエリのエンコーディングの問題

mysql_query("SET CHARACTER SET utf8_general_ci"); 

       $query = "INSERT INTO newsbox VALUES ('null', '$zaglavie', '$nom_file_big', '$den', '$mesec', '$godina', '$zaglavie2', '$text', '$zaglavie3')"; 
       $result = mysql_query($query) or die(mysql_error()); 

とキリル文字の入力テキストが?????のように挿入されています。何が問題なのか。

答えて

1

mysql_query( "SET ..")が期待通りに機能するかどうかはわかりません。 mysql_set_charset()で文字セットを設定してみてください。 テキストがそのように挿入されていますか?誤った文字セットでCLI mysqlクライアントを使用している場合、表示出力にも障害がある可能性があります(おそらく、mysql_fetch _ *()も使用して取得します)。

+0

私は何年もスクリプトを使用しています。これは初めての問題です。 – Victor

6

私が見つけやすいのは、多くのことを解決するものです。

mysql_query("SET NAMES 'utf8'"); 

クエリが実行される前。

文書にはmysql_set_charsetを使用することをお勧めしますが、その機能が不足していることがよくあります。

if(function_exists('mysql_set_charset')){ 
    mysql_set_charset('utf8', $db_con); 
}else{ 
    mysql_query("SET NAMES 'utf8'", $db_con); 
} 
+1

これは私のために働いた!なぜ私はこれを過去に行う必要がなかったのか? – Allen

+0

私はあなたの過去の環境の設定に依存していると思います。 –