Що таке BOM?
Мітка порядку байтів (BOM), або позначка порядку байтів, — це спеціальна мітка, яка вставляється у файл Unicode, закодований UTF-8, UTF16 або UTF-32, щоб ідентифікувати тип кодування файлу Unicode. Для UTF-8 BOM не потрібен, оскільки він використовується для позначення типу кодування та порядку байтів (big-endian або little-endian) багатобайтового закодованого файлу. У UTF-8 кількість бітів, закодованих для кожного символу, виражається першим байтом, і немає різниці між big-endian і little-endian. UTF-8 не потребує BOM, хоча стандарт Unicode дозволяє використовувати BOM у UTF-8. Тому UTF-8 без BOM є стандартною формою, і Microsoft здебільшого звикла розміщувати BOM у файлі UTF-8 (до речі: Microsoft також звично називати UTF-16 з BOM «Unicode» без вдачі). BOM готуються для UTF-16 і UTF-32 для позначення порядку байтів. Microsoft використовує BOM у UTF-8, оскільки він дозволяє чітко розрізняти кодування UTF-8 і ASCII, інакше відкриття CSV-файлу в Excel може бути спотворено. Але такий файл може спричиняти проблеми в інших операційних системах, окрім Windows. Різниця між «UTF-8» і «UTF-8 з BOM» полягає в тому, чи існує BOM чи ні. Тобто, чи є U+FEFF на початку файлу. Веб-код UTF-8 не повинен використовувати BOM, інакше помилки трапляються часто. При виведенні CSV-файлу з http-відповіді він за замовчуванням не додається при встановленні utf8 BOM, але Windows Excel використовує BOM для підтвердження кодування UTF8, і всім потрібно записати BOM на початку файлу.
Коли ви вперше розробляєте генератор коду на Java, ви додаєте файл безпосередньоЗапишіть у файл UTF-8, який містить тег BOMЦе призведе до помилок пакування, а саме:
Нелегальні символи: '\ufeff'
Як використати .NET / C#, щоб визначити, чи містить файл теги BOM? , код виглядає так:
Колеги, прикріпленіКонвертує формат BOM UTF-8 у формат UTF-8 (без тегів BOM), повний код виглядає так:
(Кінець)
|