0

エンコーディングについて質問があります。私のMySQLデータベースでは、ユーザーをlatin1_swedish_ciでエンコードしました(悪い考えです)。ここで、iPhone アプリケーションを Facebook に接続し、友人の名前のリストを取得します。これらの友人が既にアプリケーションに含まれているかどうかを確認したいと考えています。悲しいことに、クエリを実行しようとすると、次のエラーが発生します。

#1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_unicode_ci,COERCIBLE) for operation 'like' 

したがって、基本的には、Facebook の友人の名前 (utf8 内) とデータベース内の名前 (latin1) を混在させようとします。

データベース全体を utf8 に移行したくありません。名前のエンコーディングが latin1 と互換性があるかどうかを PHP で確認できるかどうか、または少なくとも latin1 のすべての名前をエンコードして実行できるかどうかを知りたいだけです。クエリ、およびそうでない場合は名前をスキップします。

このようなことが可能かどうか知っている人はいますか?ありがとう、

マシアール

4

1 に答える 1

2

検索ボックスなどを使用して、アプリケーションで友達をどのように探しているのか完全にはわかりませんか?PHPスクリプトの役割は何ですか?

ただし、データベースへの接続時に文字セットと照合を指定することで問題を解決できると思います。ちなみに、MySQLを使用していると思います。

DB接続を確立するたびに、次の3つのクエリを実行しますが、最初の2つで十分だと思います。

SET character_set_connection = utf8
SET character_set_client = utf8
SET character_set_results = utf8
于 2011-06-14T14:13:51.027 に答える