Блог им. semiletovобрывочные мысли о создании TEA - часть 2

Про определение кодировок в TEA. В старых версиях TEA было автоматическое определение. В новых его нет, но в файловом приказчике (который вместо окна «Открыть файл») есть кнопка "?" (всё время забываю к ней подсказку сделать), нажатие на которую приводит к автоматическому определению, и согласно результату кодировка выставляется в списке слева от кнопки.
Зачем так сделано?
Любое автоматическое определение кодировки подразумевает предварительную загрузку файла в некий буфер и анализ данных из этого буфера. Способов анализа несколько. Например, известная библиотека Enca пытается определить кодировку по частоте вхождения символов в документе.
TEA поступает иначе. В каждом языке есть короткие, часто используемые слова. Каждое такое слово можно представить как цепочку символов, где каждым звеном цепочки будет число — код символа в такой-то кодировке. Очевидно, что в разных кодировках цепочки различны (равно как и набор часто используемых коротких слов). TEA ищет такие цепочки в документе и если находит, то считает, что у документа кодировка, соответствующая цепочке.
Так вот, чтобы каждый раз при загрузке файла не выполнялись предварительная загрузка всего файла и анализ, я вынес автоматическое определение кодировки в отдельную функцию. Которая, кроме того, смотрит еще в заголовок HTML-файла, если документ таковым является.
  • +4
  • semiletov
  • 22 сентября 2011, 17:43

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

  • avatar
  • ghost
  • 22 сентября 2011, 19:55
  • #
  • 0
Хоть и не понимаю, почему Чай, ставлю плюс.
Нескромный вопрос: как с поддержкой HTML5?
Это можно решить на уровне сниппетов. В TEA, в меню «вёрстка», я поместил лишь функции, общие для нескольких языков разметки.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.