Проблема со специальными символами после миграции веб-проекта - PullRequest
1 голос
/ 21 июля 2010

У меня было несколько HTML-файлов на сервере Apache, которые имели специальные символы.Например, они имеют вместо ©.Они работали нормально, но как только я перенес эти файлы на новый сервер (также Apache), все эти символы не отображаются должным образом в браузере.

Я знаю, что было бы лучше заменить эти символы HTMLсущностей, но так как их тысячи, я просто не могу сделать это за короткий промежуток времени.Итак, мои вопросы: есть ли какая-либо директива конфигурации на сервере Apache, которую необходимо изменить, чтобы правильно сервировать эти файлы?Можно ли решить эту проблему, изменив мета-заголовки HTML?

Edit

Geert дал правильный ответ на подобные проблемы.Хотя в моем случае были некоторые файлы, закодированные с помощью ISO-8859-1, а остальные - с кодировкой UTF-8.Решением было преобразовать ISO-8859-1 в UTF-8, что можно сделать с помощью iconv:

iconv --from-code=ISO-8859-1 --to-code=UTF-8 ./from.php > ./to.php

Ответы [ 2 ]

3 голосов
/ 22 июля 2010

Установите правильную кодировку в конфигурации Apache с помощью AddDefaultCharset (http://httpd.apache.org/docs/2.0/mod/core.html#adddefaultcharset). Например, для настройки кодировки UTF-8 для всех документов можно использовать:

AddDefaultCharset utf-8

Однако используйте этуДиректива тщательно. Он установит кодировку всех документов, поэтому вы должны убедиться, что все эти документы закодированы одинаково. Если ваши документы имеют разные кодировки, не используйте это.

2 голосов
/ 21 июля 2010

Я полагаю, вы не используете мета-тег типа содержимого в элементе head?

Похоже, вам нужно посмотреть кодировку вашего старого сайта, а затем настроить Apache для отправкитот же заголовок кодировки.

Проверьте заголовки, чтобы увидеть, что отправляется.

Также, для вашего последнего пункта, измените ...

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

(конечно, используйте правильноекодировка).

... должен это сделать.

...