2011-12-21 3 views
1

У меня есть программа, на которой у меня есть символы, отличные от ASCII, которые не отображаются должным образом на ISO-8859-1. Есть ли способ использовать PHP и каким-то образом изменить кодировку браузера, а также позволить символам корректно отображаться в браузере, даже если кодировка ISO-8859-1?Изменить кодировку браузера на PHP?

Многозначительный.

+0

Так что, если это не ISO-8859-1, то что это * * кодировка? – symcbean

ответ

3

Используйте функцию header для отправки (явного) HTTP Content-Type response header.

header('Content-Type: text/html; charset=ISO-8859-1'); 

... заменяющий ISO-8859-1 любой кодировкой, которую вы фактически используете. Надеюсь, это будет UTF-8.

2

вы должны использовать функцию header

header('Content-Type: text/html; charset=ISO-8859-1'); 

Примечание: вы должны убедиться, что содержимое не были отправлены в браузере или вы не можете изменить заголовки больше, так что я советую вам использовать этот код, как можно скорее в вашем скрипте

2

В самом браузере отсутствует кодировка. Он поддерживает множество кодировок и использует тот, который вы ему рассказываете. Если вы укажете (в заголовках и/или HTML), что кодировка соответствует ISO-8859-1, тогда ваш документ должен быть в этой кодировке, и вы должны убедиться, что все отправленные вами символы находятся в правильной кодировке. Поэтому вы действительно должны отправлять символы ISO-8859-1. Вы не можете отправить документ, который использует разные кодировки для разных разделов документа.

Для некоторых символов вы можете размещать объект HTML вместо него. Например, é может быть отправлено как é. Это будет работать независимо от кодировки.

Если у вас есть выбор, я бы предпочел использовать UTF-8. Он поддерживает любого персонажа, и вам не нужно беспокоиться об экранировании диакритики или других специальных символов, кроме тех, которые являются особыми для самого HTML/XML.

1

Как и другие говорили, используя header функцию:

header('Content-type: text/html; charset=ISO-8859-1'); 

или, если вы хотите, чтобы служить действительные XHTML файлы вместо стандартного HTML:

header('Content-type: application/xml+xhtml; charset=ISO-8859-1'); 

можно назвать заголовок позже в скрипте, в отличие от того, что сказал RageZ, но для этого вам необходимо включить output buffering, используя ob_start().

+0

Зарегистрированный тип MIME для XHTML - это 'application/xml + xhtml', нет' text/xhtml'. – Quentin

+0

У вас есть синтаксическая ошибка в обоих примерах, так как вы не можете завершить строку в любом из них. – Quentin

+0

Исправлен тип содержимого XHTML, и строки заканчиваются должным образом. Извините за это: P – Tyil

Смежные вопросы