Apabila menggunakan PHP untuk pembangunan tapak web, anda mungkin menghadapi masalah pengekodan aksara. Terutama apabila menggunakan pelayan web yang berbeza, anda mungkin mendapati bahawa IIS dan Apache mengendalikan pengekodan aksara secara berbeza. Apabila anda menggunakan IIS, anda mungkin mendapati bahawa aksara bercelaru muncul apabila menggunakan pengekodan UTF-8 tetapi apabila menggunakan Apache, semuanya berfungsi dengan baik tanpa sebarang masalah; Bagaimanakah keadaan ini harus diselesaikan?
Pertama, kita perlu memahami dua konsep: set aksara dan pengekodan. Set aksara merujuk kepada set aksara, dan pengekodan ialah proses pengekodan set aksara, menukar aksara kepada 0s dan 1s yang boleh dibaca komputer. Dalam pembangunan web, set aksara yang paling biasa digunakan ialah set aksara Unicode, dan kaedah pengekodan yang paling biasa digunakan ialah pengekodan UTF-8.
Apabila anda mengendalikan pengekodan UTF-8 dalam IIS, anda mungkin menghadapi aksara yang bercelaru. Ini kerana sokongan IIS untuk UTF-8 adalah tidak sempurna. Penyelesaian kepada masalah ini adalah mudah: cuma buat IIS sedar tentang pengekodan UTF-8. Kaedah khusus adalah untuk menetapkan kaedah pengekodan dokumen lalai dalam IIS kepada UTF-8. Dengan cara ini, IIS akan mengenali pengekodan UTF-8 secara automatik, sekali gus mengelakkan masalah aksara bercelaru.
Selain itu, anda juga boleh menambah kod berikut pada kod PHP:
header("Content-type:text/html;charset=utf-8");
Fungsi baris kod ini adalah untuk memberitahu pelayar bahawa kaedah pengekodan halaman semasa ialah UTF-8, dengan itu mengelakkan Masalah kod bercelaru berlaku.
Jika anda menggunakan pengekodan UTF-8 dalam Apache, tidak akan ada masalah kod bercelaru, kerana Apache mempunyai sokongan yang lebih lengkap untuk pengekodan UTF-8. Walau bagaimanapun, jika anda menggunakan kaedah pengekodan lain dalam Apache, aksara bercelaru mungkin berlaku. Pada masa ini, anda perlu menetapkan set aksara lalai dalam fail konfigurasi Apache httpd.conf, sebagai contoh:
AddDefaultCharset utf-8
Fungsi baris kod ini adalah untuk menetapkan set aksara lalai Apache kepada UTF-8 , dengan itu mengelakkan Masalah kod bercelaru berlaku.
Secara amnya, stesen PHP tidak mengapa menggunakan Apache yang kacau-bilau IIS kerana pelayan web yang berbeza mengendalikan pengekodan aksara dengan cara yang berbeza. Jika anda menghadapi masalah kod bercelaru, anda boleh memilih penyelesaian yang berbeza mengikut situasi tertentu. Perlu diingat bahawa dalam apa jua keadaan, pengekodan UTF-8 harus digunakan, yang pada masa ini merupakan kaedah pengekodan yang paling biasa digunakan dan kaedah pengekodan yang paling disyorkan.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah apabila stesen php menggunakan iis dengan aksara yang kacau tetapi apache baik-baik saja?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!