Memahami Misteri Watak 65279 Echo dalam PHP
Walaupun menghadapi isu yang membingungkan semasa panggilan balik AJAX, di mana teks dipaparkan dengan betul dalam amaran tetapi gagal dipadankan dalam pernyataan 'jika', pelakunya ialah watak tersembunyi pada permulaan teks respons. Menariknya, watak ini mempunyai kod aksara 65279.
Penyiasatan lanjut mendedahkan bahawa watak ini, yang berasal daripada kod PHP sebelah pelayan, ialah watak kawalan UTF-8 yang tidak kelihatan yang bertujuan untuk mentakrifkan pengekodan respons. Walau bagaimanapun, persoalan timbul: mengapa watak ini dikumandangkan secara tidak sengaja?
Setelah memeriksa kod PHP dengan lebih dekat, pernyataan 'gema' mudah digunakan untuk mengeluarkan respons. Walau bagaimanapun, ia menjadi jelas bahawa Notepad, yang digunakan untuk menyimpan fail PHP, secara halus menambah Byte Order Mark (BOM) pada fail tersebut. BOM ini terdiri daripada tiga bait: EF BB BF, dan tujuannya adalah untuk menunjukkan bahawa pengekodan fail adalah UTF-8 dengan susunan bait besar-endian.
Walaupun PHP secara amnya mengendalikan BOM tanpa isu, masalah boleh timbul apabila satu fail PHP dimasukkan ke dalam fail yang lain. Dalam kes sedemikian, BOM boleh menyebabkan rentetan dipaparkan dengan aksara 65279 yang didahulukan padanya, membawa kepada tingkah laku yang tidak dijangka dalam perbandingan.
Syukurlah, terdapat cara untuk mengelakkan isu ini:
Dengan melaksanakan ini penyelesaian, pembangun boleh menghalang penampilan watak 65279 yang tidak diingini dalam respons PHP mereka, memastikan perbandingan dan operasi rentetan lain berfungsi seperti yang dimaksudkan.
Atas ialah kandungan terperinci Mengapa Watak 65279 Muncul dalam Respons PHP Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!