Три слова для вас:
Это представление спецификации UTF-8 в ISO-8859-1. Вы должны сказать своему редактору, чтобы он не использовал спецификации или не использовал другой редактор, чтобы вырезать их.
Чтобы автоматизировать удаление спецификации, вы можете использовать awk
, как показано в этом вопросе .
Как в другом ответе говорится , лучше всего, чтобы PHP действительно правильно интерпретировал спецификацию, для этого вы можете использовать mb_internal_encoding ()
, например:
<?php
//Storing the previous encoding in case you have some other piece
//of code sensitive to encoding and counting on the default value.
$previous_encoding = mb_internal_encoding();
//Set the encoding to UTF-8, so when reading files it ignores the BOM
mb_internal_encoding('UTF-8');
//Process the CSS files...
//Finally, return to the previous encoding
mb_internal_encoding($previous_encoding);
//Rest of the code...
?>
Я не знаю PHP, поэтому не знаю, возможно ли это, но лучшим решением было бы читать файл как UTF-8, а не в какой-либо другой кодировке. Спецификация на самом деле имеет НУЛЕВУЮ ШИРИНУ, БЕЗ РАЗРЫВА. Это пробел, поэтому, если бы файл читался в правильной кодировке (UTF-8), то спецификация интерпретировалась бы как пробел и игнорировалась бы в результирующем файле CSS.
Еще одно преимущество чтения файла в правильной кодировке состоит в том, что вам не нужно беспокоиться о неверной интерпретации символов. Ваш редактор сообщает вам, что кодовая страница, на которой вы хотите ее сохранить, не будет поддерживать все символы, которые вам нужны. Если PHP затем читает файл в неправильной кодировке, то очень вероятно, что другие символы, кроме спецификации, автоматически неверно интерпретируются. Используйте везде UTF-8, и эти проблемы исчезнут.
Спецификация - это просто последовательность символов ($ EF $ BB $ BF для UTF-8), поэтому просто удалите их с помощью сценариев или настройте редактор, чтобы он не добавлялся.
Из Удаление спецификации из UTF-8 :
#!/usr/bin/perl
@file=<>;
$file[0] =~ s/^\xEF\xBB\xBF//;
print(@file);
Я уверен, что это легко переводится на PHP.
Если вам нужно иметь возможность удалять BOM из файлов с кодировкой UTF-8, то сначала вам нужно обзавестись редактором, который их понимает.
Лично я использую E Text Editor.
В правом нижнем углу есть опции для кодировки символов, включая тег BOM. Загрузите ваш файл, снимите выделение Byte Order Marker, если оно выбрано, пересохраните, и все должно быть готово.
Alt text http://oth4.com/encoding.png
E не бесплатна, но есть бесплатная пробная версия, и это отличный редактор (ограниченная TextMate совместимость).