Sunday, September 14, 2008

Исправление gtkhtml

Для исправления моего проекта, решил немного подправить:
  1. не поддерживал иные кодировки кроме utf, нужно было перекодировать исходный текст страниц;
  2. не корректная кодировка в передаваемом запросе.
Результат моих изменений можно посмотреть в папке patches.

В исходном коде удалена перекодировка entity - так как кодировка определяется после разбора кода страницы. В разборе удалена перекодировка строк и проверки на соответствие последовательности байт utf, теперь код только копирует части строк. При запросе из разобраного дерева tokens они перекодируються и заменяються Entity. В результате рендеринг отображает страницу в правильной кодировке, если кодировка указана в заголовке ответа или через указание http-equiv. Для перекодировки при формирование запроса заменил код http_encoding_string - теперь при вызове указываеться кодировка в которую нужно перекодировать строки. Данные о кодировке беруться из htmlengine.

В коде остались такие проблемы:
  1. в gtkhtml храниться кодировка хотя там она не как не используеться - нужно перевести на использование кодировки указаной в htmltokenizer
  2. в htmltokenizer есть код в цикле добавляющий по одному символу в буфер нужно заменить на strcpy
  3. существуют проблемы перекодировки на mail.ru заголовки сылок заменяються знаками вопроса

No comments: