серверная часть включает и кодировку символов - PullRequest
4 голосов
/ 12 февраля 2009

Я создал статический веб-сайт , в котором каждая страница имеет следующую структуру:

  1. Обычные вещи, такие как заголовок, меню и т. Д.
  2. Материал для конкретной страницы в основном содержимом div
  3. Footer

На этом сайте весь общий контент дублируется на каждой странице. Чтобы улучшить удобство обслуживания, я реорганизовал страницы для использования серверных включений (SSI), чтобы общий контент не дублировался. Структура каждой страницы теперь

  1. SSI для общих вещей, таких как заголовок, меню и т. Д.
  2. Материал для конкретной страницы в основном содержимом div
  3. SSI для нижнего колонтитула

По измененному сайту, по какой-то причине французские символы больше не отображаются должным образом в области содержимого для конкретной страницы, хотя они отлично отображаются в контенте, включенном через SSI.

Включенный заголовок определяет набор символов как:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Если я открою одну из страниц основного контента в браузере, он скажет, что кодировка символов соответствует ISO-8859-1. Я попытался добавить файл .htaccess в папку со строками

AddDefaultCharset UTF-8
AddCharset UTF-8 .shtml
AddCharset UTF-8 .html

Но все же эти противные французские акценты не отображаются должным образом в версии сайта, использующей SSI.

Ответы [ 3 ]

3 голосов
/ 12 февраля 2009

Вы обслуживаете свои страницы как UTF-8, что хорошо, но по крайней мере часть страницы перетаскивается из файлов, которые фактически не сохраняются как UTF-8. SSI просто добавляет необработанные байты, он не пытается перекодировать включения, чтобы их наборы символов соответствовали файлу, в который они включаются.

Вам необходимо просмотреть все ваши html и включить файлы в текстовый редактор и убедиться, что каждый из них сохранен как UTF-8.

Как упоминал Джон, вы можете избежать проблем с кодированием, используя ссылки на символы для всех символов, не относящихся к ASCII, но это огромная боль.

0 голосов
/ 30 мая 2011

У меня была та же проблема, что и у вас, и, наконец, я нашел решение, которое ее исправило.

UTF8 делает дополнительную строку на моем сайте

Сохраните все свои файлы как UTF-8 без спецификации (http://en.wikipedia.org/wiki/Byte_order_mark).

0 голосов
/ 12 февраля 2009

Ваш HTML-документ использует кодировку UTF-8, попробуйте эти коды символов для ваших акцентированных букв: http://www.tony -franks.co.uk / UTF-8.htm

...