Автоматическая перекодировка сайта в кодировку UTF-8

cyborg

Новичок
Автоматическая перекодировка сайта в кодировку UTF-8

Никто не пробовал юзать ob_start("ob_iconv_handler")?

Так выводят нормально браузеры

PHP:
<?php

header("Content-type: text/html; charset=utf-8");
iconv_set_encoding("internal_encoding", "CP1251");
iconv_set_encoding("output_encoding", "UTF-8");
ob_start("ob_iconv_handler"); 
echo '<?xml version="1.0" encoding="utf-8"?>';
echo '<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">';
echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">';
echo '<head>';
echo '<title>Тест</title>';
echo '</head>';
echo '<body>';
echo '<div>Тест</div>';
echo '</body>';
echo '</html>';
ob_end_flush();

?>
А так кодировка кривая, как будто-то преобразование не работает

PHP:
<?php

header("Content-type: application/xhtml+xml; charset=utf-8");
iconv_set_encoding("internal_encoding", "CP1251");
iconv_set_encoding("output_encoding", "UTF-8");
ob_start("ob_iconv_handler"); 
echo '<?xml version="1.0" encoding="utf-8"?>';
echo '<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">';
echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">';
echo '<head>';
echo '<title>Тест</title>';
echo '</head>';
echo '<body>';
echo '<div>Тест</div>';
echo '</body>';
echo '</html>';
ob_end_flush();

?>
 

cyborg

Новичок
Добавление туда тэга <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> не вызывает никакого эффекта
 

cyborg

Новичок
Вообще тип содержимого application/xhtml+xml, и даже если поставить text/html, то ничего не изменится. меняется только при изменении содержимого header()
 

cyborg

Новичок
jonjonson, может и браузера. Но не трех же? Коряво показывают и ФФ и ИЕ и на мобиле

-~{}~ 01.06.07 09:19:

Сейчас проверю телнетом
 

cyborg

Новичок
Меняю контент-тайп страницы - меняется кодировка. Проверено телнетом
 

jonjonson

Охренеть
А вообще, сохранял в файл перекодированный контент? Он валидный?
 

cyborg

Новичок
На самом деле, у меня тоже заголовок не просто так выводится, а так:
PHP:
if(isset($_SERVER["HTTP_ACCEPT"])) {
  if (($pos = strpos($_SERVER["HTTP_ACCEPT"], "application/vnd.wap.xhtml+xml")) !== false) {
    $markup_header = 'Content-type: application/vnd.wap.xhtml+xml; charset=windows-1251';
  }
  else if (($pos = strpos($_SERVER["HTTP_ACCEPT"], "application/xhtml+xml")) !== false) {
    $markup_header = 'Content-type: application/xhtml+xml; charset=windows-1251';
  }
  else {
    $markup_header = 'Content-type: text/html; charset=windows-1251';
  }
} else {
    $markup_header = 'Content-type: text/html; charset=windows-1251';
}
Но браузер сам говорит, что понимает application/xhtml+xmlб поэтому для него выбирается соответсвующий типа:

$_SERVER["HTTP_ACCEPT"]= text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
 

SiMM

Новичок
> На самом деле, у меня тоже заголовок не просто так выводится, а так:
Что-то я из этих заголовков не пойму, какое они имеют отношение к UTF-8
 

cyborg

Новичок
я сделал raw-соединение по 80 порту. в одном случае кодировка нормальная - в другом - нет

-~{}~ 01.06.07 10:17:

SiMM это я просто вырезал кусок кода, пришлось временно поставить windows-1251, сорри, не поправил. До этого там было конечно же utf-8
 
Сверху