Xpoint
   [напомнить пароль]

Проблемы с валидацией

Метки: [без меток]
2005-07-20 15:08:52 [обр] WWWoron(0/9)[досье]

Не могу пройти валидацию на http://validator.w3.org =(

Ответ валидатора:

Sorry! A fatal error occurred when attempting to transcode the character encoding of the document. Either we do not support this character encoding yet, or you have specified a non-existent character encoding (often a misspelling).

The detected character encoding was "cp-1251".

The error was "".


Вот мой код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html lang="ru">
<head>
   <title>XXX</title>
   <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
   <meta name="description" content="" />
   <meta name="keywords" content="" />
   <link rel="stylesheet" type="text/css" media="screen" href="/css/screen.css" />
   <link rel="stylesheet" type="text/css" media="print" href="/css/print.css" />
   <link rel="shortcut icon" type="image/ico" href="/favicon.ico" />
</head>


В чем может быть проблема?

спустя 8 минут [обр] Lynn «Кофеман»(0/571)[досье]
Кодировки cp-1251 не существует. Есть windows-1251.
спустя 4 минуты [обр] Евгений Петров(0/1055)[досье]

Добавил в конец

<body>
</body>
</html>

и валидатор сказал все ОК.

спустя 17 минут [обр] WWWoron(0/9)[досье]

Lynn «Кофеман»[досье]
Так у меня вроде и написано: charset=windows-1251

Евгений Петров[досье]
есстественно там все это есть, но так как проблема видимо в кодировке, я не стал писать код не относящийся к проблеме.

спустя 1 минуту [обр] Алексей В. Иванов(9/2861)[досье]
См. заголовки, отдаваемые сервером
спустя 10 минут [обр] WWWoron(0/9)[досье]

Алексей В. Иванов[досье]

Вот что насчет заголовков говорит сервер:

GET / HTTP/1.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.8) Gecko/20050511 Firefox/1.0.4
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru-ru,ru;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
If-Modified-Since: Wed, 20 Jul 2005 11:17:34 GMT
If-None-Match: "4c021-1745-42de32ce"
Cache-Control: max-age=0

спустя 2 минуты [обр] Rom McRitsky(0/441)[досье]
Это заголовки, которые шлёт браузер, а не отдаёт сервер.
спустя 6 минут [обр] WWWoron(0/9)[досье]

Упс, сорри...

HTTP/1.x 200 OK
Cache-Control: no-cache, max-age=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Content-Type: text/xml; charset=windows-1251
X-Cache: MISS from ###.ru
X-Cache-Lookup: MISS from ###.ru:3128
Connection: close

спустя 2 часа 47 минут [обр] SelenIT(0/67)[досье]
WWWoron[досье]
  1. Валидация посредством upload-а файла проходит?
  2. Почему этот документ отдается как text/xml, а не как appliсation/html+xml или хотя бы text/html ? А как xml он, возможно, не распознается из-за отсутствия <?xml ...> в начале (IMHO).
спустя 10 минут [обр] WWWoron(0/9)[досье]

SelenIT[досье]

Добавил такие строки:

<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru">
<head>
...

  1. посредством upload-а файла валидация проходит.
  2. через УРЛ-валидацию опять та же ошибка
спустя 19 минут [обр] Алексей В. Иванов(9/2861)[досье]
В шестнадцатеричном виде посмотрите на предмет "странных" символов.
спустя 4 часа 32 минуты [обр] Владимир Палант(49/4445)[досье]

SelenIT[досье]

  1. Вы, наверное, всё-таки имели в виду application/xhtml+xml? Это равнозначно text/xml, браузер всё равно должен ориентироваться на namespace. <?xml ... ?> в начале файла опционален, его отсутствие не мешает.

WWWoron[досье]
И всё-таки дело в кодировке, которую отдаёт ваш веб-сервер в заголовках. Возможно, вам отдаётся windows-1251 из-за вашего Accept-Charset. А w3.org получает cp-1251. Копайте настройки сервера (русский Apache?).

спустя 10 часов [обр] WWWoron(0/9)[досье]

Всем спасибо, проблему решил, раскопав конфиг сервера как и советовал Владимир Палант[досье].

Проблема заключалась в том, что после каких-то давних экспериментов админа с программером в конфиге были указаны и cp-1251 и windows-1251, после закомментирования cp-1251 валидатор перестал ругаться.

Владимир Палант[досье]
Нет, Apache не русский %)
Apache 1.3.33 (Debian/Linux)

спустя 1 час 8 минут [обр] SelenIT(0/67)[досье]
Владимир Палант[досье]
Конечно имел в виду application/xhtml+xml — "очепятался", прошу прощения. А про равнозначность application/xhtml+xml и text/xml действительно не знал, спасибо за просвещение!
Powered by POEM™ Engine Copyright © 2002-2005