Аргерих Л. О языке РНР. Часть 5. Страница 57


Как заставить броузер понимать язык

Пытаясь определить кодировку документа, броузер испытывает влияние ря­да факторов:

♦ Он использует кодировку символов, указанную сервером в параметре HTTP charset (в поле Content-Type)

♦ Если такого поля нет, он будет искать объявление<те1а> с атрибутом

tp-equiv, установленным в Content-Type, и значение charset

♦ Если и это не удастся, он может попытаться угадать кодировку, но пола­гаться на это нельзя

В любом случае следует стремиться к тому, чтобы сообщить броузеру о коди­ровке символов в самом начале сценария. Заголовки HTTP надо посылать броузеру раньше любых других данных. Также надо добавить объявление

<meta> в элемент <head> веб-страницы.

Следующая веб-страница сначала добавляет заголовок HTTP, а затем также использует объявление <meta> в теге <head>, чтобы убедить броузер в том, что мы хотим установить на данной странице кодировку ISO-8859-2 для чешско­го текста:

<?php

text/html; charset=IS0-8859-2');

?>

<html>

<head>

cmeta http-equiv="Content-Type" content="text/html; charset=IS0-8859-2">

<title>Test Czech Encoding</title> </head> <body>

<h1>Bohusel!</h1>

<p>Pro mHsto 'Aalborg, Denmark' nejsou k disposici 3/4adna data</p>

</body> </html>

По-английски этот текст означает «Sorry! There's no data for 'Aalborg, Den­mark'». И взят из сценария, генерирующего прогнозы погоды.

Некоторые участки текста выглядят очень странно — вместо подчеркивания (_) появляется символ «три четверти». Это лишь подчеркивает тот факт, что понимать символы должен броузер, а не редактор или РНР.

Тот же результат можно видеть на любой странице, написанной на ино­странном языке. Часто приходится принимать изменение набора символов, используемого броузером. Буквы a-z останутся теми же, но специальные символы могут измениться.

Реакция на предпочтения броузера с помощью РНР

К счастью, не приходится гадать, из какой страны посетитель сайта. Обычно броузер передает эту информацию при первом запросе к серверу с помощью

заголовка Accept- Language.

Не следует полагать, что броузер не примет документ на немецком языке, если он не указал его в числе своих предпочтительных языков. Заголовок - это лишь совет для веб-сервера.

Сайт http://www.debian.org/">http://www.debian.org интенсивно пользуется этим заголовком. Если броузер настроен правильно, то страницы должны автоматически появляться на вашем родном языке (конечно, при условии, что эта страница на него переведена).