0
POSTとして送信された値を内部文字列と比較しようとしています。両方ともutf8でエンコードされています。これは、コードPHPでutf8でエンコードされた文字列を比較する
echo $_POST["province"] . "\n";
setlocale(LC_COLLATE, "fr_CA");
echo strcoll($_POST["province"], "Québec");
このコードは次のようにエコー表示されます。文字列の一致ではなく、-38場合
Québec
-38
たstrcollは0を返す必要があります。つまり、比較が失敗します。人間の読者と同一の2つのutf8文字列を比較するにはどうすればよいですか?私はノーマライザを試してみました:一般的な "=="演算子を正規化しようとしましたが、マルチバイトのPHP拡張モジュールを見ました。
'strcmp()'または 'strcasecmp()'を試してみませんか?または、ハッシュを比較するか? – Corubba