Terdapat tiga cara untuk PHP menyelesaikan aksara yang bercelaru semasa menulis txt: 1. Tetapkan pengekodan fail Sebelum menulis fail, anda boleh menetapkan pengekodan fail kepada UTF-8; tandakan untuk mengenal pasti kaedah pengekodan Unicode mana yang digunakan oleh fail untuk mengelakkan aksara yang tidak kemas;
Sistem pengendalian untuk tutorial ini: Sistem Windows 10, versi php8.1.3, komputer Dell G3.
Penyelesaian kepada txt bercelaru yang ditulis oleh PHP:
1 Tetapkan pengekodan fail
Sebelum menulis fail, anda boleh memanggil mb_internal_encoding() dan. mb_http_output(), tetapkan pengekodan fail kepada UTF-8.
<?php // 设置内部字符编码为UTF-8 mb_internal_encoding('UTF-8'); // 设置 HTTP 输出字符编码为UTF-8 mb_http_output('UTF-8'); $file = 'data.txt'; $content = '你好世界!'; $handle = fopen($file, 'w'); fwrite($handle, $content); fclose($handle); ?>
2. Output BOM Byte Mark Order
BOM (Byte Order Mark) ialah jujukan bait khas yang biasanya muncul pada permulaan fail teks Unicode, menggunakan Used untuk mengenal pasti kaedah pengekodan Unicode (big-endian atau little-endian) yang digunakan oleh fail. Jika tiada tanda BOM dalam pengepala fail, teks mungkin bercelaru.
Anda boleh menggunakan kod berikut untuk mengeluarkan tanda BOM dalam fail:
<?php $file = 'data.txt'; $content = "\xEF\xBB\xBF" . '你好世界!'; // 在内容前添加BOM标记 $handle = fopen($file, 'w'); fwrite($handle, $content); fclose($handle); ?>
3 Gunakan fungsi fwrite() dengan pilihan
fwrite() Fungsi boleh menerima parameter ketiga pilihan, menunjukkan panjang rentetan yang akan ditulis. Jika panjang data yang ditulis pada fail tidak konsisten dengan panjang yang disediakan, aksara bercelaru akan muncul. Oleh itu, dengan menggunakan pilihan ini, anda boleh memastikan bahawa data yang ditulis pada fail adalah sama panjang dengan panjang yang dibekalkan.
rreeeeAtas ialah kandungan terperinci Apakah kaedah untuk php untuk menyelesaikan aksara bercelaru yang ditulis ke dalam txt?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!