Dalam beberapa tahun kebelakangan ini, perkembangan teknologi rangkaian telah membawa banyak kemudahan kepada kehidupan kita, terutamanya dalam bidang pembangunan program. Sebagai pembangun, saya pernah menghadapi masalah tentang aksara bercelaru yang ditulis ke dalam fail Selepas tempoh masa untuk menyelesaikan masalah, saya ingin berkongsi pengalaman saya di sini.
Punca masalah
Dalam projek saya, terdapat keperluan untuk menulis pembolehubah yang menyimpan sejumlah besar aksara Cina ke dalam fail. Saya mula-mula menggunakan cara yang paling biasa dan paling mudah: tulis keseluruhan rentetan secara terus, menggunakan kod berikut:
$file = fopen("test.txt", "w"); fwrite($file, $str); fclose($file);
Tetapi apabila saya membuka test.txt, saya mendapati Semua aksara Cina telah menjadi omong kosong.
Analisis Masalah
Pertama sekali, lihat dokumentasi rasmi, anda boleh melihat perihalan fungsi fwrite() menyebut:
fwrite — 将内容写入文件中 int fwrite ( resource $handle , string $string [, int $length ] )
Parameter kedua ialah rentetan , iaitu apa yang kita mahu tulis. Tetapi jika terdapat aksara Cina dalam rentetan (termasuk aksara biasa Jepun, Korea dan bukan Inggeris lain), anda harus memberi perhatian.
Oleh kerana dalam komputer, aksara diwakili oleh nombor binari Bahasa Inggeris biasanya menduduki satu bait, iaitu 8 bit, manakala satu aksara Cina memerlukan 2-3 bait. Ini membawa kepada masalah: jika kita menulis nombor binari Cina terus ke dalam fail, aksara bercelaru mungkin muncul disebabkan oleh sistem pengendalian yang berbeza.
Penyelesaian
Memandangkan intipati masalahnya ialah pengekodan aksara adalah berbeza, kita boleh menyelesaikannya dengan menggunakan pengekodan yang sama.
Dalam PHP, pengekodan rentetan ditentukan dan boleh dikendalikan menggunakan perpustakaan mbstring. Oleh itu, kita boleh menukar rentetan kepada pengekodan yang sama sebelum menulis, seperti UTF-8:
$file = fopen("test.txt", "w"); fwrite($file, mb_convert_encoding($str, "UTF-8")); fclose($file);
Dengan cara ini, kita boleh mengelakkan masalah aksara Cina yang kacau. Jika anda masih menemui aksara bercelaru semasa membuka fail, ini mungkin kerana pengekodan lalai editor teks yang anda gunakan bukan UTF-8 Dalam kes ini, anda boleh menggunakan editor untuk membuka fail dan menukar pengekodan secara manual UTF-8, dan anda akan melihat Bahasa Cina Betul.
Ringkasan
Artikel ini memperkenalkan cara untuk mengelakkan masalah aksara Cina yang kacau apabila menulis fail menggunakan PHP. Perkara utama ialah mengetahui isu pengekodan aksara dan melakukan penukaran pengekodan aksara sebelum menulis. Semoga dapat membantu pembaca yang mengalami masalah yang sama.
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika aksara Cina php ditulis ke dalam fail bercelaru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!