$_POST/$_REQUEST データに問題があります。まだ utf8_encoded のままのようです。
次の条件で、従来の ajax ポスト リクエストを送信しています。
oXhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
- utf8-nobom 形式で保存された js ファイル
<header>
htmlタグ設定のメタタグ- utf-8-nobom 形式で保存された php ファイルも
encodeURIComponent
使用されていますが、使用せずに試してみましたが、同じ結果が得られます
OK、すべて問題ありません。データベースも utf8 であり、この方法で受信すると、ページが適切に表示されます。
しかし、たとえば ($_REQUEST
またはを介して$_POST
) 文字 "º" を受け取った場合、そのバイナリ表現は ですが11000010 10111010
、php (utf8...) でハードコードされた "º" はバイナリ表現10111010
のみです。
え?それが良いことかどうかはわかりません...たとえば、explode
php関数の区切り文字として「#º#」を使用すると、検出されず、これが実際に私を導く問題ですここ。
いつものように助けていただければ幸いです。お時間をいただきありがとうございます。最高のRGDS。
EDIT1:チェックmb_check_encoding
if (mb_check_encoding($_REQUEST[$i], 'UTF-8')) {
raise("$_REQUEST is encoded properly in utf8 at index " . $i);
} else {
raise(false);
}
エンコーディングが確認され、メッセージが適切に表示されました。