Специальные символы отображаются как?Метки - PullRequest
2 голосов
/ 06 сентября 2011

У меня есть несколько специальных символов:
http://209.141.56.244/test/char.php

но когда я получаю этот файл через ajax здесь, они появляются как назад? метки:
http://209.141.56.244/test/char.html

Эти символы должны быть «ISO-8859-1 Western», но переключение кодировки моего браузера на любой из параметров не помогает.

Почему это так и как я могу это исправить?

Ответы [ 2 ]

5 голосов
/ 06 сентября 2011

Ваш сервер отправляет ответ Ajax как text/html, это заставляет браузер предполагать UTF-8 (который является значением по умолчанию), но ваши данные не UTF-8.

Отправьте ответ Ajax какtext/html; Charset=Windows-1252 (вы на самом деле не используете ISO-8859-1), и он должен работать.

header('Content-Type: text/html; Charset=Windows-1252');

PS: переключение браузера на другую кодировку не помогает, поскольку это влияет только на саму страницу.Последующие ответы Ajax по-прежнему декодируются в соответствии с их соответствующими заголовками.

3 голосов
/ 06 сентября 2011

Ваша страница возвращает text/html как Content-Type, поэтому браузер (и скрипт ajax) интерпретируют их с кодировкой по умолчанию, заданной текущим контекстом.

В php вы можете форсировать кодирование с помощью функции header для html-версии, вам следует использовать файлы конфигурации apache (если вы используете apache, в противном случае смотрите документ вашего веб-сервера).

http://www.w3.org/International/O-HTTP-charset говорит

Очень важно всегда явно маркировать веб-документы. HTTP 1.1 говорит, что кодировка по умолчанию - ISO-8859-1. Но есть тоже многие немаркированные документы в других кодировках, поэтому браузеры используют предпочтительная кодировка читателя, когда нет явной кодировки параметр.

с той же страницы

Apache . Это можно сделать с помощью AddCharset (Apache 1.3.10 и выше) или AddType директивы, для каталогов или отдельных ресурсов (файлы). С AddDefaultCharset (Apache 1.3.12 и более поздних версий) это можно установить кодировку по умолчанию для всего сервера. Для большего информацию см. в статье Настройка информации о кодировке в .htaccess.

...