こんにちは、php を使用しています。配列のデータと読み取ったキャプチャのデータを比較する必要があります。しかし、htmlエンコーディングに問題がありました。私の配列からの例:
"osiemnaście" => 18,
およびキャプチャからのデータ:
osiemnaście
これらのデータをどのように比較できますか? 「html_entity_decode()」は既に試しましたが、結果はありません。
そのアクセント付きの「s」文字の文字セット/エンコーディングの問題のように見えます。サーバー側と HTML 側の両方で UTF-8 を設定していることを確認してください。
PHP をたくさん使ってからしばらく経ちましたが、次の関数が役立つかもしれません: http://php.net/manual/en/function.mb-convert-encoding.php
16 進エンティティをデコードするには、PHP 組み込み関数がこれらをカバーしていないため、少し作業する必要があります。
$string = "osiemnaście";
$string = preg_replace('/\&\#x([a-fA-F0-9]+)\;/me', 'mb_convert_encoding("&#".hexdec("\\1").";", "UTF-8", "HTML-ENTITIES")', $string);
// $string is now "osiemnaście"
echo ($string == "osiemnaście")
? "success"
: "failure";
あなたのオプションは、逆の方法でそれを行うことです:
htmlentities("osiemnaście") == $captchainput
htmldocument からのファイルと入力のエンコーディングに注意する必要があります。
php を使用して documentencoding を定義できます。
header('Content-Type: text/html; charset=utf-8');
またはhtmlで:<meta charset="utf-8" />