Как сделать кодировку utf 8 без bom
Перейти к содержимому

Как сделать кодировку utf 8 без bom

  • автор:

WordPress и кодировка файлов UTF-8 без BOM

Кодировать в UTF-8 (без BOM)

Мне очень часто приходится своим клиентам объяснять нижеизложенную популярную проблему с кодировкой UTF-8, поэтому я написал данную статью, чтобы впредь отправлять их сюда. Многие владельцы сайтов, в частности работающих на блоговом движке WordPress, редактируют PHP-файлы в блокноте, который прилагается к ОС Windows. Поскольку сам движок WordPress работает с кодировкой UTF-8, а файлы шаблона, как правило, содержат русские буквы, кириллицу, то для правильного ее отображения такие файлы также необходимо сохранять в кодировке UTF-8. Однако блокнот Windows при сохранении в кодировке UTF-8 добавляет в PHP-файлы невидимые символы, называемые BOM (кстати говоря, невидимые они именно в блокноте Винды), которые в результате приводят к тому, что-либо на сайте отображается какая-то PHP-ошибка, либо «съезжает» дизайн. Поэтому решение проблемы очень простое — при работе с кодировкой UTF-8 необходимо вообще забыть, что существует блокнот Windows и вместо него использовать нормальный текстовый редактор, который прекрасно умеет это делать. Например, Notepad++. После установки Notepad++ откройте в нем целевой PHP-файл и меню выберите «Кодировки → Кодировать в UTF-8 (без BOM)»: После этого сохраните файл и загрузите его на свой сайт через FTP. Если вы не знаете, какой из файлов сохранен в неправильной UTF-8 кодировке, то воспользуйтесь специальным скриптом, который найдет все файлы с BOM, которые необходимо пересохранить вышеописанным способом. Все, на этом задачу с кодировкой можно считать решенной. P.S. По большому счету, вышеизложенная информация применительна вообще к любым текстовым файлам, а не только к файлам WordPress, но, поскольку я преимущественно работаю с WordPress, то изложил материал в контексте данного движка. * * * Для желающих бросить курить в интернет-гипермаркете DigBox.ru осуществляется продажа электронных сигарет — инновационное устройство, имитирующее табакокурение и использующее технологию никотинозаместительной терапии. Позволяет эффективно избавиться от никотиновой зависимости.

Смотрите также

Программа для определения цвета на экране: что лучше Zx Color Spy?

Программа для определения цвета на экране: что лучше Zx Color Spy?

64 комментария

Так получилось, что я практически весь период своей деятельности в сфере веб-разработки (а это примерно с 2003—2004 года) неизменно пользуюсь одной и той же программой для получения цвета с любой точки экрана монитора. Называется она Zx Color Spy .

Rapid PHP — добротный текстовый редактор

87 комментариев

Довольно продолжительное время я пользовался текстовым редактором PSpad, о чем уже неоднократно писал на этом блоге. Сначала он был для меня супер-программой, затем после тестирования аналогов стало не хватать некоторых функций, а в последнее время некоторые минусы .

Как научиться слепому 10-пальцевому методу печати всего за 2 недели, уделяя по 30 минут в день

39 комментариев

Вы все еще набираете текст на клавиатуре двумя пальцами?Тогда мы идем к Вам! Сегодня несколько отдаленный от тематики блога пост. Хотя… если посмотреть на это с другой стороны, то тема, обозначенная в заголовке, имеет самое прямое отношение и к блоггингу, и веб-мастерингу, .

PSPad vs Notepad++

82 комментария

В этой статье пойдет речь о текстовых редакторах PSPad и Notepad++. Если Вы не пользуетесь одним из них, или не находитесь в данный момент в процесса выбора для себя наиболее подходящего редактора, то дальше можете не читать :). Давно пользуюсь редактором .

Комментарии (25)

Помню сам долго парился с такой проблемой, не мог понять почем модули сьезжают вниз, хотя в html с виду все чисто

у меня для быстрого редактрирования на ftp настроен akelpad, нормально там управление кодировками сделано,
а курьезы конечно были. сложно было как-то под убунтой искать левые символы после верстки на винде

С Notepad++ Бывают такие проблемы, что выполнишь перекодировку и сохранишь, а в браузере все равно «кракозябры». Тут приходится переименовывать файл в txt Открывать его в своем любимом ворде и сохранять его как новый файл txt. Вот тогда уже все гуд

А вообще я считаю что в нормальных редакторах кода такая функция должна быть обязательно. В большинстве есть.

Я тоже горя хапнул с этими бомами и в свое время несколько статей написал по этому поводу на Белой Шляпе. Не помню чей это код, но он загружается в корень сайта и ищет файлы с БОМ, это очень удобно. Периодически я пользуюсь этим скриптом и время от времени он вылавливает неправильные файлы.

«необходимо вообще забыть, что существует блокнот Windows» — золотые слова 🙂 а лучше и об Windows забить 😉

Перекодировка из utf-8 без BOM в windows-1251

Имеется файл в кодировке utf-8 с текстом ТОЛЬКО на латинице. Пробую с помощью notepad++ перекодировать его в windows-1251. Сохраняю, открываю заново, но файл читается все равно в кодировке utf-8 (без BOM). Вопрос: как мне сделать, чтобы файл был в кодировке windows-1251, иначе его не может использовать одна программка. И как вообще любая программа, использующая файл, определяет его кодировку? Как например тот же notepad++ может понять кодировку, если все символы в нем на латинице, а их коды совпадают и в windows-1251 и utf-8?

Отслеживать
задан 23 мая 2014 в 7:52
Александр Железновский Александр Железновский
148 1 1 золотой знак 2 2 серебряных знака 13 13 бронзовых знаков

@eicto в случае латиницы частотным анализом разделить cp1251 и utf8 сложновато:) Я думаю, что notepad++ просто берет utf8 как более оптимальный вариант.

23 мая 2014 в 8:09

а каким тогда образом мне заставить прогу видеть этот файл в кодировке windows-1251, не изменяя видимой контент? Просто у нас куплена прога и ей нужен файл именно в этой кодировке. Владелец проги прислал нам файл который сначала и был в windows-1251 и в нем были только латинские символы, но мы пересохранили этот файл, ничего не добавляя и теперь невозможно вернуть его опять в кодировку windows-1251

23 мая 2014 в 8:22

я бы взял любую утилиту, которая умеет сравнивать бинарные файлы (например — cjmweb.net/vbindiff). Дальше, взял исходный присланный файл, открыл его в редакторе и сохранил с новым именем (теперь он должен «поменять кодировку»). После это сделал бы сравнение. Подозреваю, что там есть парочка символов, которые и портят все.

23 мая 2014 в 8:34

@KoVadim если это текст на латинице без единого управляющего кода, то это не-utf (ну или utf, короче говоря его кодировка utf/latin-1 не имеет значения, так-же как невозможно сказать по начертанию , на каком именно языке написано «A» )

23 мая 2014 в 8:53

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Собственно с чего Вы взяли, что в Вашем файле отсутствует BOM?

Если в файле текст ТОЛЬКО на латинице, то кодировки utf-8 и 1251 отличаются только наличием/отсутствием BOM’а.

Собственно то, что Вы написали про пересохранение, как раз очень похоже на добавление BOM’а.

Другой вопрос, что ни один редактор BOM Вам не отобразит. Есть некоторая надежда на редактор Far, но скорее всего и его будет не так то просто заставить отобразить эти символы.

В общем, Вам нужно удалить из файла первые два байта (ну или затереть их допустим пробелами), причем сделать это надо не в текстовом редакторе (ну или в редакторе, который не знает, что такое utf-8).

UTF-8 vs UTF-8 без BOM — что когда использовать?

Помогите, пожалуйста, разобраться:
UTF-8 и UTF-8 без BOM — в чём разница в использовании? Что лучше использовать для сохранения файлов?

Когда-то у меня сложилось впечатление, что UTF-8 универсальнее, лучше использовать эту кодировку — тогда я имел дело с HTML, CSS +/- JavaScript, но позднее — имея дело с PHP — получил опыт, говорящий, что UTF-8 без BOM предпочтительнее (были проблемы, как раз, из-за UTF-8)

Так, как всё-таки быть? Что использовать?

Мой опыт пока такой: для клиентской части — UTF-8 (либо нет разницы), для серверной — UTF-8 без BOM — всё так? Почему?

  • Вопрос задан более трёх лет назад
  • 59384 просмотра

Комментировать
Решения вопроса 2

delphinpro

Сергей delphinpro @delphinpro
frontend developer

Различий никаких нет, кроме наличия/отсутствия маркера. Кодировка одна и та же — utf-8. По стандарту unicode маркер должен быть.

Удалять маркер BOM при сохранении нужно только для PHP, который почему-то не умеет корректно обрабатывать нормальные unicode файлы.

Ответ написан более трёх лет назад
Нравится 6 1 комментарий
(«Нет смысла использовать строку без информации о её кодировке») —

littleguga

littleguga @littleguga
Не стыдно не знать, а стыдно не интересоваться.

Маркер последовательности байтов или метка порядка байтов (англ. Byte Order Mark (BOM)) — Юникод-символ, используемый для индикации порядка байтов текстового файла. Его кодовый символ U+FEFF. По спецификации, его использование не является обязательным, однако, если маркер последовательности байтов используется, то он должен быть установлен в начале текстового файла. Помимо своего конкретного использования в качестве указателя порядка байтов, символ может также указать, какой кодировкой Unicode закодирован текст.

Кодировка Unicode может использовать 16-разрядные или 32-разрядные числа и приложение должно знать, как дальше с ними поступать. Поэтому потребность в маркере последовательности байтов возникает при обмене документами.

Если сохраняете php файл — то без BOM, в остальном же разницы никакой не имеет.

Как сделать кодировку utf 8 без bom

Сообщений: 47 Регистрация: 20.11.2016

26.11.2016 08:53:27

Доброго всем времени суток, у меня возникла следующая проблема, мне попал excel документ с кодировкой ANSI, а для webа необходима кодировка UTF-8 без boom
открыл документ в notepad , но он почему то не меняет, т.е меняет но кодировка отображение остаётся не изменной.
Помоги это сделать, стандартными средствами excel я так понял этого не сделать, а как, помогите макросом

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *