Установка кодировки DOM для HTML файлов

  • Автор темы lolita_solnceva
  • Дата начала

lolita_solnceva

Guest
Установка кодировки DOM для HTML файлов

плюс в xml-файле нужно указать изначальную кодировку,
например, так
<?xml version="1.0" encoding="KOI8-R" ?>
C xml эта строка прекрасно работает,
но как указать кодировку для html-файла ?

Или хотябы подскажите какую кодировку DOM использует по умолчанию для HTML,
чтобы в нее сначала конвертнуть.
Если это iso-8859-1 тогда облом так как при ковертации windows-1251 -> iso-8859-1
все русские буквы исчезают.
 

worm

Новичок
Ну и бредятина...

Пока не разобрался что из себя представляет DOM -- используй UTF-8
 

lolita_solnceva

Guest
Хм...
Исходный текст в кодировке windows-1251.
1) Попробовала использовать такую конструкцию для перевода в ISO-8859-1:
Код:
$zih = iconv("windows-1251", "UTF-8", "Das is test. Это тест");
$zih = utf8_decode($zih);
echo $zih . "<br>";
Выдает
Код:
Das is test. ??? ????
2) Или такую конструкцию для перевода в ISO-8859-1:
Код:
$zih = iconv("windows-1251", "ISO-8859-1", "Das is test. Это тест");
echo $zih . "<br>";
Выдает только:
Код:
Das is test.
А все символы кирилицы удаляються :(

Ребята подскажите что делать ?
 

slach

Новичок
Лолита, DOM - это ТОЛЬКО UTF8 для внутреннего представления

что ты имеешь ввиду под "DOM для HTML" =)

1) ты хочешь распарсить not-well-formed HTML документ ? чтобы получить DOM дерево ??

2) или ты с помощью libxslt хочешь преобразовать XML в HTML ?
и получить HTML в виде windows-1251?

3) какая версия php? php4 ? php5 ?
 

lolita_solnceva

Guest
1) ты хочешь распарсить not-well-formed HTML документ ? чтобы получить DOM дерево ??
Да, используя расширение DOM (метод loadHTML/loadHTMLString).

Исходный html в window-1251 кодировке.
Когда я сним работаю (например просто вывод дерева с помощью метода saveHTML)
Все символы кирилицы искажаються.
Указание строки кодировки (<?xml ... encode ...) здесь не проходит.
Вот, как уже писала выше, пробовала использовать iconv()
Но с ним тоже что то не так :?

3) php5
 

slach

Новичок
PHP:
<?php
$doc = new DOMDocument('1.0','windows-1251');
$html = '<html><meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /><body>тестирование<br></body></html>';

$doc->loadHTML($html);
echo $doc->saveHTML();
?>
вот такой код у меня нормально работает

без дополнительной кодировки выдает то что надо в 1251

php5.0.4-dev из снапшутов
 

nimistar

Новичок
Парадокс ... так работает ....

но как тока генережкой начинается то все слетает ..
 
Сверху