Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Cari dan Keluarkan Tanda Pesanan Byte (BOM) dalam Fail UTF-8?

Bagaimana untuk Cari dan Keluarkan Tanda Pesanan Byte (BOM) dalam Fail UTF-8?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-04 10:29:02546semak imbas

How to Find and Remove Byte Order Marks (BOM) in UTF-8 Files?

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!

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