もう一度、私は奇妙でトリッキーな問題を抱えています。
私はMySQLデータベース(およびそれに関してはサーバー上の他のすべて)をUTF-8に変換して、テキストを取得して別のデータベースに配置するときにテキストを変換する必要がないように取り組んできました。
私は部分的に成功したと思いSHOW VARIABLES LIKE 'character_set%'
ます。
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
ただし、それでもmysql_client_encoding($con);
戻りlatin1
、出力ではすべての特殊文字が�に置き換えられます。私の結論は、ドキュメントヘッダーとmy.iniで次のコードを使用してutf-8を指定しているにもかかわらず、クライアントまたはPHPとMySQLデータベース間の接続でlatin1を使用しているということです。
character-set-server = utf8
character-set-client = utf8
default-character-set = utf8
編集: [client]、[mysqld]、[mysql]の両方に上記の設定を追加しました
使用しmysql_query('SET NAMES utf8;');
たりmysql_set_charset("utf8");
、テキストが正しく表示されたりする場合、それは解決策ではなく、一時的な修正にすぎません。
PHP(またはlatin1に戻すもの)にutf-8を使用させる方法を知っている人はいますか?
私はWindows2003ServerとApache2を使用していることに言及する必要があります。