Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Cari dan Keluarkan Tanda Pesanan Byte (BOM) dalam Fail UTF-8?
Pendekatan Bijak: Mencari BOM dalam Fail UTF-8
Keperluan untuk meninjau direktori untuk fail UTF-8 yang dihiasi dengan Pesanan Byte Tanda (BOM) timbul untuk tujuan penyahpepijatan. Walaupun skrip shell menawarkan penyelesaian yang mudah, ia mungkin bergelut dengan ketidaksempurnaan seperti satu baris yang tidak boleh dibaca atau kepekaan terhadap pemisah baris dalam nama fail.
Penyelesaian Yang Ditapis
Mencari lebih banyak pendekatan elegan, pertimbangkan arahan ringkas ini:
find . -type f -exec sed '1s/^\xEF\xBB\xBF//' -i {} \;
Arahan ini memanfaatkan utiliti 'cari' untuk melintasi direktori yang ditentukan. Fail jenis 'f' (fail biasa) kemudiannya ditapis. Untuk setiap fail yang layak, editor 'sed' dipanggil, melaksanakan penggantian pada baris pertama. Rentetan ^xEFxBBxBF bermula dengan jujukan kawalan yang menandakan permulaan baris dan sepadan dengan tiga aksara yang membentuk BOM: EF BB BF. Dengan menggantikan ini dengan rentetan kosong, BOM dipadamkan dengan berkesan.
Nota Berjaga-jaga
Pengguna diberi amaran bahawa operasi ini merosakkan. Fail binari yang mengandungi aksara ini akan diubah suai. Untuk melindungi daripada perubahan yang tidak diingini, gunakan arahan ini sebaliknya:
grep -rl $'\xEF\xBB\xBF' .
Perintah yang dipinda ini kekal setia kepada misi 'grep padanan corak. Ia mengekalkan keupayaan untuk mengenal pasti fail yang mengandungi BOM tanpa mendatangkan bahaya.
Atas ialah kandungan terperinci Bagaimana untuk Cari dan Keluarkan Tanda Pesanan Byte (BOM) dalam Fail UTF-8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!