Apabila membangunkan PHP, tidak dapat dielakkan untuk menghadapi aksara yang bercelaru. Aksara bercelaru termasuk tetapi tidak terhad kepada keluaran aksara bercelaru Cina pada halaman web, aksara bercelaru Cina yang disimpan dalam pangkalan data, aksara bercelaru Cina dalam nama fail yang dimuat naik, dsb. Artikel ini akan memperkenalkan punca dan penyelesaian aksara PHP yang kacau.
1. Sebab PHP aksara bercelaru
Terdapat pengekodan aksara lalai dalam PHP, yang biasanya utf-8. Jika pengekodan aksara halaman, pangkalan data, fail, dsb. tidak konsisten, aksara bercelaru akan muncul dengan mudah. Contohnya, pengekodan bahasa Cina bagi pangkalan data ialah gbk, dan pengekodan halaman PHP ialah utf-8 Apabila membaca bahasa Cina daripada pangkalan data, aksara yang bercelaru akan muncul.
Semasa interaksi data, jika aksara Cina tidak diproses dengan betul, aksara bercelaru juga akan berlaku. Contohnya, apabila memproses nama fail yang dimuat naik, fungsi seperti mb_convert_encoding() tidak digunakan untuk penukaran pengekodan.
Sesetengah program sendiri mengalami masalah pengekodan, mengakibatkan aksara Cina bercelaru dalam keadaan tertentu. Sebagai contoh, beberapa program PHP yang sangat lama akan mempunyai aksara yang kacau dalam persekitaran pelayan moden.
2. Penyelesaian kepada aksara berantakan PHP
Tetapkan pengekodan aksara lalai kepada utf-8 dalam fail php.ini, anda boleh Menyelesaikan masalah watak bercelaru dalam kebanyakan kes. Kaedah khusus adalah seperti berikut:
Cari fail php.ini, biasanya dalam direktori pemasangan PHP.
Edit fail php.ini, cari ";default_charset = utf-8" dan nyahkomennya.
Alih keluar ulasan daripada baris "default_charset = utf-8".
Mulakan semula perkhidmatan PHP.
Terdapat dua fungsi penukaran pengekodan dalam PHP: iconv dan mbstring. Kedua-dua fungsi ini boleh menukar pengekodan aksara kepada pengekodan sasaran. Kod khusus adalah seperti berikut:
fungsi iconv:
$str = iconv("pengekodan asal", "pengekodan sasaran", $str);
fungsi mbstring:
$str = mb_convert_encoding($str, "target encoding", "original encoding");
Perlu diambil perhatian bahawa fungsi mbstring perlu mendayakan sambungan mbstring terlebih dahulu, yang boleh diubah suai melalui fail php.ini atau dalam Buat perubahan dalam fungsi.
Jika pengekodan bahasa Cina bagi fail yang anda ingin proses tidak jelas atau dalam halaman yang perlu mengeluarkan bahasa Cina, anda boleh menentukan pengekodan bahasa Cina dengan menulis maklumat pengepala HTML , contohnya:
Dalam kes ini, adalah disyorkan untuk menambah kod ini pada permulaan fail untuk memastikan kod berjalan dengan betul.
Apabila bertukar data, semua aksara Cina boleh ditukar kepada pengekodan bersatu dan kemudian diproses. Ini memastikan ketekalan pengekodan dan mengelakkan masalah kod bercelaru.
Kesimpulan:
Masalah bercelaru PHP agak biasa, tetapi penyelesaiannya agak mudah dan jelas. Melalui pengenalan artikel ini, saya percaya bahawa semua orang boleh menyelesaikan masalah kod PHP yang kacau. Ingat untuk menulis lebih banyak kod dan terus belajar dan menambah baik Anda juga boleh menjadi jurutera pembangunan PHP yang cemerlang!
Atas ialah kandungan terperinci Ringkaskan punca dan penyelesaian kod bercelaru PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!