私は、世界中の場所の「geoanems」データベースを使用する簡単な Web サイトを構築しています。Mysql、PHP、および CodeIgniter を使用していますが、UTF8 の地名に問題があります。DB をインポートしましたが、すべてが UTF-8 でセットアップされています。
ただし、ブラウザで名前を正しく取得できるかどうかを確認するために簡単なテストを実行していますが、いたるところに疑問符が表示されます。MySQL は 1123230 の名前と sname の正しい 16 進数を表示しますが、同じ文字「C481」が 1127766 の sname で取り除かれ、「3F」に置き換えられています。
どうしたの?これは 16 進数を実行している MySQL ですが、なぜ値が変更されたのでしょうか? また、一方の行で問題なく表示できるのに、もう一方の行では問題ないのはなぜですか?
サーバーを UTF8 用にセットアップし、MySQL でチェックを実行して、それが正しく設定されているかどうかを確認しました。これは CodeIgniter でも機能しません:(
。「SET NAMES 'UTF8'」も送信しましたが、まだ喜びはありません。
これはSQLです:
$sql = 'select geonameid,name,sname, hex( name ) ,hex( sname ) from pp_adm1 where country = "af" COLLATE utf8_general_ci';
Sequel Pro - DB で正しいエンコーディングを表示する