| View previous topic :: View next topic |
| Author |
Message |
KeepGoing
Joined: 15 Sep 2011 Posts: 37
|
Posted: Tue Jan 01, 2013 10:17 am Post subject: BOM в UTF-8, в глобальной перспективе и на разных ОС |
|
|
Вот уже много лет храню личную базу знаний в TXT в кодировке ANSI (1251), и АкелПад (в паре с клавиатурным лончером Launchy) - мой основной инструмент. Задумал переконвертировать её в UTF-8, который представляется более удобным для того, чтобы обрабатывать эту самую базу как разными инструментами (напр., ZIM и ResophNotes, для которых UTF-8 - родная кодировка, а ANSI они вообще не понимают), так и на разных платформах, отличных от Windows (Android, MacOS).
Вопрос: конвертировать с BOM, или без него?
Я так понимаю, что всё, для чего BOM нужен в однонаправленной UTF-8 - это помощь программе-редактору в определении кодировки (c BOM программа однозначно понимает, что перед ней Юникод). Насколько (на практике) эта помощь нужна современным программам?
Случались ли ситуации, в которых наличие BOM в UTF-8 мешало удобной и безпроблемной работе с файлами?
Хочется выбрать один вариант (с BOM или без), конвертировать всё пакетом, и на ближайшие "дцать" лет не вспоминать о кодировках и их особенностях.. |
|
| Back to top |
|
 |
DV
Joined: 16 Nov 2006 Posts: 723 Location: Kyiv, Ukraine
|
Posted: Tue Jan 01, 2013 3:05 pm Post subject: Re: BOM в UTF-8, в глобальной перспективе и на разных ОС |
|
|
Наличие BOM однозначно указывает редактору, что перед ним файл в формате Юникод. Без BOM редактору приходится догадываться об этом самостоятельно на основе анализа первых N байт (обычно от 1024 байт и больше) текстового файла. Не все редакторы делают такой анализ, и некоторые воспринимают UTF-8 без BOM как ANSI.
В общем случае наличие BOM представляется более полезным, чем его отсутствие. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1888 Location: Vinnitsa, Ukraine
|
Posted: Tue Jan 01, 2013 8:20 pm Post subject: |
|
|
| Ну думаю тут речь идет не только о редакторах, а и о различного рода утилитах. Некоторое количество утилит вполне себе хорошо работают и с однобайтовыми кодировками, так и с UTF8, даже без предварительного определения. |
|
| Back to top |
|
 |
KeepGoing
Joined: 15 Sep 2011 Posts: 37
|
Posted: Wed Jan 02, 2013 12:35 pm Post subject: |
|
|
DV, спасибо, не знал, что UTF-8 без BOM может быть распознан как ANSI.
FeyFre, да, конечно, файлы предполагается обрабатывать не только текстовыми редакторами, но и разномастными утилитами. С TXT я исповедую концепцию "единообразный простой материал + разнообразные специализированные инструменты для его обработки" (при этом всё предельно кроссплатформенно и без феодальной привязки к определённому ПО). С простым текстом - как с деревом, из которого можно и дом сколотить, и лодку смастерить, и скульптуру сваять.
В общем, если не найдётся прецедентов, в которых наличие BOM в UTF-8 создавало проблемы, то вопрос можно считать решённым. Пока что я знаю только один такой случай, связанный с CMS WordPress (но тут всё же про *.php и *.html, а не *.txt). |
|
| Back to top |
|
 |
DV
Joined: 16 Nov 2006 Posts: 723 Location: Kyiv, Ukraine
|
Posted: Wed Jan 02, 2013 1:27 pm Post subject: |
|
|
Говоря о консольных утилитах, портированных с Unix/Linux, я встречал ещё такое упоминание: "For some reason this tool (psql for postgres) can't handle leading BOM character sequences in utf8 encoded files". Но тут мы, похоже, сталкиваемся с дубовостью разработчиков, которые в своих утилитах ожидают либо всегда UTF-8, либо всегда ANSI, не делая никаких дополнительных проверок (даже на наличие BOM).
А вот, к примеру, написанный на .NET искатель/заменитель текста TextCrawler (http://www.digitalvolcano.co.uk/content/textcrawler) ориентируется по BOM - в его форуме даже есть тема насчёт того, что UTF-8 без BOM воспринимается им как ANSI. |
|
| Back to top |
|
 |
s1n
Joined: 06 Jan 2013 Posts: 1
|
Posted: Sun Jan 06, 2013 3:35 am Post subject: |
|
|
| Один раз столкнулся с проблемой, когда софт у хостера неправильно распозновал BOM-файлы и в итоге на сайте в начале страницы был заголовок от BOMа. Пришлось все *.php(и прочие) файлы перегонять в уникод без BOM'а. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|