Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah yang perlu saya lakukan jika kod php memaparkan aksara bercelaru?

Apakah yang perlu saya lakukan jika kod php memaparkan aksara bercelaru?

PHPz
PHPzasal
2023-04-12 13:53:45970semak imbas

PHP ialah bahasa skrip bahagian pelayan yang sangat popular, kemunculannya menjadikan pembangunan web lebih mudah dan lebih pantas. Tetapi kadangkala anda akan mendapati kod PHP yang anda tulis bercelaru apabila dipaparkan pada halaman, yang kemungkinan besar disebabkan oleh pengekodan aksara.

Jadi, jika kod yang ditulis dalam PHP bercelaru, apakah yang perlu kita lakukan?

Pertama sekali, kita perlu memahami beberapa konsep asas:

  1. Set aksara

Set aksara merujuk kepada nama umum set aksara, seperti UTF-8, GB2312 dsb. Setiap set aksara mengandungi beberapa aksara, dan aksara ini sepadan dengan satu atau lebih digit binari. Set aksara yang berbeza menggunakan cara yang berbeza untuk menyimpan nombor ini, jadi mereka juga mempunyai kaedah pengekodan yang berbeza.

  1. Pengekodan

Pengekodan merujuk kepada proses mewakili aksara dalam set aksara sebagai nombor perduaan. Terdapat banyak pengekodan aksara, antaranya yang lebih biasa ialah ASCII, GBK, UTF-8, dsb.

  1. BOM

BOM ialah singkatan kepada Byte Order Mark, iaitu tanda pesanan bait. Ia ialah aksara khas yang digunakan untuk menunjukkan kaedah pengekodan dan biasanya muncul pada permulaan fail teks.

Setelah memahami konsep asas ini, kita boleh menangani kod yang bercelaru mengikut situasi tertentu.

Penyelesaian 1: Tetapkan set aksara dan kaedah pengekodan

Pertama, kita perlu menetapkan set aksara dan kaedah pengekodan pada permulaan fail PHP untuk memberitahu pelayar cara membaca dan Tunjukkan halaman kami. Secara amnya, kita boleh menggunakan kod berikut:

header("Content-type:text/html;charset=utf-8");

Dalam kod ini, kami menetapkannya melalui fungsi pengepala. Antaranya, Content-type menentukan bahawa jenis kandungan output ialah teks/html, dan charset menentukan bahawa set aksara ialah utf-8. Dengan cara ini, halaman kami boleh dikeluarkan dalam pengekodan UTF-8.

Jika halaman anda mengandungi aksara kaedah pengekodan lain, anda boleh menukar nilai parameter set aksara kepada kaedah pengekodan yang sepadan, seperti GBK, GB2312, dsb.

Penyelesaian 2: Tukar set aksara dan pengekodan

Jika fail PHP kami mengandungi beberapa aksara yang bercelaru, kami boleh menukar aksara ini supaya ia sepadan dengan aksara yang kami tetapkan Tetapkan dan pengekodan padanan.

Sebagai contoh, kita boleh menggunakan fungsi mb_convert_encoding yang disertakan dengan PHP untuk melakukan penukaran, seperti yang ditunjukkan di bawah:

$original_str = "这是一个乱码的字符串";
$new_str = mb_convert_encoding($original_str, "UTF-8", "GBK");
echo $new_str;

Dalam kod di atas, kita mula-mula mentakrifkan pembolehubah $ yang mengandungi rentetan bercelaru original_str, dan kemudian gunakan fungsi mb_convert_encoding untuk menukar. Parameter pertama mewakili rentetan yang akan ditukar kepada pengekodan, parameter kedua mewakili kaedah pengekodan untuk ditukar kepada, dan parameter ketiga mewakili kaedah pengekodan asal.

Akhir sekali, kami mengeluarkan rentetan yang ditukar melalui pernyataan gema, supaya teks yang betul boleh dipaparkan pada halaman.

Penyelesaian 3: Alih keluar BOM

Jika BOM ditambahkan pada fail PHP kami semasa menyimpan, ia juga akan menyebabkan aksara bercelaru dalam halaman. Penyelesaiannya agak mudah, cuma simpan fail dalam format bebas BOM. Kaedah operasi khusus adalah seperti berikut:

Buka fail PHP dalam Notepad dan pilih Simpan Sebagai. Dalam kotak dialog simpan, cari pilihan pengekodan, dan kemudian tukar kaedah pengekodan kepada UTF-8 tanpa format BOM.

Ringkasnya, jika kod PHP anda bercelaru, anda boleh mengambil tiga kaedah di atas untuk menanganinya mengikut situasi tertentu. Saya percaya bahawa selagi anda mengikuti kaedah ini, anda akan dapat menyelesaikan masalah kod yang bercelaru dan menjadikan program PHP anda berjalan seperti biasa.

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika kod php memaparkan aksara bercelaru?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn