1
私は現在、PHPとMySQLの文字列の文字列比較に問題があります。 私は、MySQL DBから来ている変数を持っていると私はハードコードされたものとそれを比較する:MySQLとPHPの文字列の比較 - Unicodeの正規化?
$string_from_mysql = "Información" //comes from DB read;
$test_string = "Información" //hard coded via text editor;
$test = strpos($string_from_mysql,$test_string); -> Returns false
問題がOに関連すると思われるが、$で文字が$ test_stringにしながら、0x00F3値を持つstring_from_mysql文字は0xC3 0xB3です。 これは明らかに、strposの「偽の」戻り値につながります。文字は「正準的には同等」ですが、同じ値ではありません。
このような状況でのアプローチは何ですか?私はNormalizerのPHPクラスを見つけました。これは実行可能でクリーンなソリューションですか?
ありがとうございました。
0xf3値の文字列はLatin1としてエンコードされ、0xc3 0xb3の文字列はUTF-8でエンコードされます。 [データベース接続を設定する](http://stackoverflow.com/questions/279170/utf-8-all-the-way-through)にUTF-8を返すようにしてください。 – nwellnhof