UTF-8 (від англ. Unicode Transformation Format, 8-bit - «формат перетворення Юнікоду, 8-бітний») - поширене кодування символів Юнікоду, сумісна з 8-бітними форматами передачі тексту. Знайшло широке застосування в операційних системах і веб-просторі.
Багато програм Windows (включаючи Блокнот) додають байти EF16, BB16, BF16 на початку будь-якого документа, що зберігається як UTF-8. Це мітка порядку байтів (англ. Byte Order Mark, BOM), також її часто називають сигнатурою (відповідно, UTF-8 та UTF-8 with Signature). За наявності сигнатури програми можуть автоматично визначити, чи є файл закодованим в UTF-8, проте файли з такою сигнатурою можуть некоректно оброблятися старими програмами, зокрема xml-аналізаторами.
<?php
/*
* змінна $text - вихідний текст
*/
function removeBOM($text="") {
if(substr($text, 0, 3) == pack('CCC', 0xef, 0xbb, 0xbf)) {
$text= substr($text, 3);
}
return $text;
}
/*
* file.php - файл, в якому потрібно видалити BOM
*/
$text=file_get_contents('file.php');
$text_without_bom = removeBOM($text);
?>
Тепер в змінній $text_without_bom у нас текст без BOM. Його можна записати назад в файл або робити далі будь-які потрібні дії.