ホームページ  >  記事  >  バックエンド開発  >  PHP AJAX 応答テキストが文字列比較に失敗するのはなぜですか?

PHP AJAX 応答テキストが文字列比較に失敗するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-06 17:52:03155ブラウズ

Why Is My PHP AJAX Response Text Failing String Comparisons?

PHP での文字 65279 エコーの回避

AJAX コールバック経由で応答を受信すると、取得したテキスト (xmlhttp. responseText) は正しいように見えますが、特定の文字列との比較では誤った結果が得られます。これは、charCodeAt(0) が 65279 の非表示文字の存在が原因で発生することがよくあります。

文字 65279 について

文字 65279 は Unicode 制御文字 (Unicode)コードポイント U FEFF) は、Unicode エンコードのエンディアンを指定します。

  • ビッグ エンディアン: バイトは最上位バイトから順に格納されます。
  • リトル エンディアン: バイトは格納されます。最下位バイトが最初の順序で。

文字 65279 エコーの原因

文字 65279 は通常、Windows メモ帳などのエディタによって UTF-8 エンコードされたファイルに追加されます。 。 PHP ファイルが別のファイルにインクルードされると、この文字が導入され、予期しない動作が発生する可能性があります。

解決策

文字 65279 のエコーを回避するには、次のことができます。

  • BOM なしのテキスト エディターを使用する: バイト オーダー マーク (BOM) なしで UTF-8 エンコードで保存できるメモ帳などのエディターを使用して、PHP ファイルを編集します。
  • ANSI エンコーディングで PHP ファイルを保存: 拡張文字を使用しない PHP ファイルを ANSI エンコーディングで保存します。
  • 文字 65279 を手動で削除: responseText に文字 65279 が含まれている場合は、比較する前にそれを削除します。

以上がPHP AJAX 応答テキストが文字列比較に失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。