Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengeluarkan Tanda Pesanan Byte (BOM) daripada Fail UTF-8?

Bagaimana untuk Mengeluarkan Tanda Pesanan Byte (BOM) daripada Fail UTF-8?

Linda Hamilton
Linda Hamiltonasal
2024-12-17 10:28:24947semak imbas

How to Remove Byte Order Marks (BOMs) from a UTF-8 File?

Cara Mengeluarkan Tanda Pesanan Bait (BOM) dari Permulaan Fail

Masalah:

Anda menghadapi masalah dengan fail CSS yang mengandungi aksara tidak kelihatan, dilambangkan dengan , yang mengganggu fungsinya yang betul apabila dibaca oleh PHP. Fail disimpan dalam pengekodan UTF-8, tetapi mengalih keluar aksara secara manual adalah mencabar.

Jawapan:

Aksara yang anda perhatikan dikenali sebagai Byte Order Marks ( BOM). BOM ialah aksara Unicode yang menunjukkan susunan bait (endianness) fail. Dalam kes ini, BOM UTF-8 menandakan bahawa fail menggunakan pengekodan UTF-8.

Penyelesaian:

  • Lumpuhkan BOM dalam Editor: Konfigurasikan editor anda untuk tidak memasukkan BOM semasa menyimpan fail. Dalam sesetengah editor, anda mungkin menemui tetapan yang berkaitan dengan "BOM."
  • Strip BOM dengan awk: Gunakan utiliti baris arahan awk untuk mengalih keluar BOM daripada fail:
awk 'sub(/^\xEF\xBB\xBF/, "")' input.css > output.css
  • Kendalikan BOM dalam PHP: Tetapkan dalaman PHP pengekodan kepada UTF-8 untuk mengabaikan BOM semasa membaca fail:
<?php
mb_internal_encoding('UTF-8');
// Read and process CSS files
mb_internal_encoding('previous encoding'); // Restore previous encoding
?>

Nota:

  • Pengekodan ISO-8859-15 tidak boleh mewakili UTF-8 BOM, jadi menyimpan fail dalam format itu akan mengakibatkan kehilangan data.
  • Tamat talian (Windows vs. Linux) seharusnya tidak menjejaskan pengesanan BOM.

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Tanda Pesanan Byte (BOM) daripada 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