PHP ialah bahasa pengaturcaraan sebelah pelayan yang biasa digunakan yang menduduki kedudukan penting dalam pembangunan web. Walau bagaimanapun, pemula sering menghadapi masalah biasa - fail PHP akan kelihatan bercelaru. Keadaan ini biasanya berlaku apabila menggunakan aksara Cina, yang sangat mengelirukan dan sakit kepala. Dalam artikel ini, kami akan meneroka sebab aksara bercelaru dalam PHP dan cara menyelesaikan masalah ini.
1. Sebab aksara bercelaru dalam PHP
Aksara bercelaru disebabkan oleh masalah pengekodan aksara. Apabila kaedah pengekodan fail PHP tidak konsisten dengan kaedah pengekodan sebenar yang digunakan, aksara bercelaru akan muncul. Contohnya, jika fail PHP dikodkan dalam UTF-8 dan dibuka menggunakan pengekodan GB2312, aksara bercelaru akan muncul.
Apabila kami menyimpan bahasa Cina dalam pangkalan data, jika set aksara pangkalan data tidak sepadan, aksara bercelaru mungkin muncul. Kita perlu menetapkan set aksara yang betul semasa membina pangkalan data, seperti utf8.
Dalam PHP, fungsi seperti gema dan cetakan selalunya digunakan untuk mengeluarkan kandungan Jika bahasa Cina dikeluarkan secara langsung, aksara bercelaru mungkin muncul. Ini kerana secara lalai, set aksara output PHP ialah ISO-8859-1, dan aksara Cina tidak boleh dihuraikan dengan betul, jadi aksara bercelaru akan muncul. Kita perlu menetapkan set aksara output kepada UTF-8 untuk memaparkan bahasa Cina dengan betul.
2. Kaedah untuk menyelesaikan masalah aksara bercelaru dalam PHP
Apabila kami mencipta fail PHP, kami perlu menetapkan kaedah pengekodan fail adalah UTF-8, mengambil pengekodan Cina konsol sebagai contoh, pengekodan fail yang dibuka mesti sepadan dengan pengekodan sistem dalam phpstorm, tetapkan pengekodan projek dan Pengekodan lalai ialah UTF-8; Ini dengan berkesan boleh mengelakkan masalah pengekodan dalam fail PHP itu sendiri.
Apabila PHP menyambung ke pangkalan data, anda perlu menetapkan set aksara yang betul untuk pautan. Kita boleh menetapkannya melalui fungsi mysqli_set_charset() atau PDO::exec(), sebagai contoh:
$link = mysqli_connect("localhost", "my_user", "my_password", "my_db");
mysqli_set_charset($link, "utf8");
atau
$pdo = PDO baharu('mysql:host=localhost;dbname=my_db', 'my_user', 'my_password ');
$pdo->exec('set names utf8');
Ini memastikan set aksara sepadan antara PHP dan pangkalan data.
Apabila mengeluarkan, kita boleh menggunakan fungsi pengepala PHP untuk menetapkan Content-Type kepada charset=utf-8 untuk memaklumkan pelayar set aksara yang perlu dihuraikan oleh penyemak imbas.
header('Content-Type: text/html; charset=utf-8');
Selain itu, apabila menggunakan echo kepada kandungan output, kita boleh menukar kandungan kepada UTF- 8, sebagai contoh:
ikon echov('GBK', 'UTF-8', 'Rentetan Cina Output');
Untuk penukaran set aksara panjang, disyorkan untuk menggunakan mbstring PHP sambungan mb_convert_encoding() fungsi dalam .
Ringkasan: Aksara bercelaru dalam PHP kebanyakannya berkaitan dengan tetapan set aksara. Untuk mengelakkan situasi ini daripada berlaku, kita harus ingat untuk menetapkan set aksara yang betul semasa proses pembangunan untuk mengelakkan aksara bercelaru yang disebabkan oleh ketidakpadanan set aksara.
Atas ialah kandungan terperinci Mengapa php kelihatan bercelaru?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!