PHP での文字 65279 エコーの謎を理解する
AJAX コールバック中に、テキストがアラートに正しく表示されるという不可解な問題に遭遇したにもかかわらずしかし、「if」ステートメントで一致しなかった場合、原因は応答テキストの先頭にある隠し文字でした。興味深いことに、この文字の文字コードは 65279 でした。
さらなる調査により、この文字はサーバー側の PHP コードに由来し、応答のエンコーディングを定義することを目的とした非表示の UTF-8 制御文字であることが判明しました。しかし、疑問が生じます: なぜこの文字が誤ってエコーされてしまったのでしょうか?
PHP コードを詳しく調べると、応答を出力するために単純な 'echo' ステートメントが使用されていました。しかし、PHP ファイルの保存に使用されたメモ帳がファイルにバイト オーダー マーク (BOM) を微妙に追加していることが明らかになりました。この BOM は EF BB BF の 3 バイトで構成されており、その目的は、ファイルのエンコーディングがビッグエンディアンのバイトオーダーの UTF-8 であることを示すことでした。
PHP は通常、BOM を問題なく処理しますが、問題が発生する可能性があります。ある PHP ファイルが別の PHP ファイルにインクルードされるときに発生します。このような場合、BOM により文字列の先頭に文字 65279 が付加されて表示され、比較時に予期しない動作が発生する可能性があります。
ありがたいことに、この問題を回避する方法があります。
これらを実装することで、ソリューションを使用すると、開発者は PHP 応答に文字 65279 が出現するのを防ぎ、比較やその他の文字列操作が意図したとおりに機能するようにすることができます。
以上がPHP 応答に文字 65279 が表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。