Во-первых, некоторый фон: я разрабатываю веб-приложение с использованием Python. Все мои (текстовые) файлы хранятся в UTF-8 с помощью спецификации. Сюда входят все мои HTML-шаблоны и файлы CSS. Эти ресурсы хранятся как двоичные данные (спецификация и все) в моей БД.
Когда я извлекаю шаблоны из БД, я их декодирую, используя template.decode('utf-8')
. Когда HTML появляется в браузере, спецификация присутствует в начале тела ответа HTTP. Это вызывает очень интересную ошибку в Chrome:
Extra <html> encountered. Migrating attributes back to the original <html> element and ignoring the tag.
Кажется, что Chrome генерирует тег <html>
автоматически, когда видит спецификацию и ошибочно принимает ее за контент, что делает реальный тег <html>
ошибкой.
Итак, используя Python, какой лучший способ удалить спецификацию из моих закодированных в UTF-8 шаблонов (если они существуют - я не могу гарантировать это в будущем)?
Для других текстовых файлов, таких как CSS, основные браузеры правильно интерпретируют (или игнорируют) спецификацию? Они отправляются как простые двоичные данные без .decode('utf-8')
.
Примечание. Я использую Python 2.5.
Спасибо!