Apa itu BOM?
Tanda urutan byte (BOM), atau tanda urutan byte, adalah tanda khusus yang dimasukkan ke dalam file Unicode yang dikodekan dengan UTF-8, UTF16, atau UTF-32 untuk mengidentifikasi jenis pengkodean file Unicode. Untuk UTF-8, BOM tidak diperlukan, karena digunakan untuk menandai jenis pengkodean dan urutan byte (big-endian atau little-endian) dari file yang dikodekan multi-byte. Dalam UTF-8, jumlah bit yang dikodekan untuk setiap karakter dinyatakan dengan byte pertama, dan tidak ada perbedaan antara big-endian dan little-endian. UTF-8 tidak memerlukan BOM, meskipun standar Unicode mengizinkan penggunaan BOM di UTF-8. Oleh karena itu, UTF-8 tanpa BOM adalah bentuk standar, dan terutama kebiasaan Microsoft untuk menempatkan BOM dalam file UTF-8 (omong-omong: juga merupakan kebiasaan Microsoft untuk memanggil UTF-16 dengan BOM "Unicode" tanpa membahas detailnya). BOM disiapkan untuk UTF-16 dan UTF-32 untuk menandai urutan byte. Microsoft menggunakan BOM di UTF-8 karena memungkinkan perbedaan yang jelas antara pengkodean UTF-8 dan ASCII, jika tidak, membuka file CSV di Excel mungkin kacau. Tetapi file seperti itu dapat menyebabkan masalah pada sistem operasi selain Windows. Perbedaan antara "UTF-8" dan "UTF-8 dengan BOM" adalah apakah ada BOM atau tidak. Artinya, apakah ada U+FEFF di awal file. Kode web UTF-8 tidak boleh menggunakan BOM, jika tidak, kesalahan sering terjadi. Saat mengeluarkan file CSV dari respons http, file tersebut tidak disertakan secara default saat diatur ke utf8 BOM, tetapi Windows Excel menggunakan BOM untuk mengonfirmasi pengkodean UTF8, dan semua perlu menulis BOM ke awal file.
Saat pertama kali mengembangkan generator kode Java, Anda akan menempatkan file tersebut secara langsungMenulis ke file UTF-8 yang berisi tag BOMHal ini akan menyebabkan kesalahan pengemasan, sebagai berikut:
Karakter ilegal: '\ufeff'
Bagaimana cara menggunakan .NET / C# untuk menentukan apakah file berisi tag BOM? , kodenya adalah sebagai berikut:
Rekan kerja, terlampirMengonversi format BOM UTF-8 ke format UTF-8 (tanpa tag BOM), kode lengkapnya adalah sebagai berikut:
(Akhir)
|