Из utf-8 в win-1251

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Ответить
ANDeath
Сообщения: 4
Зарегистрирован: 15 ноя 2005, 12:42

Народ, мудренный опытом, подскажите почему следующий код выводит результат в неправильной кодировке:

Код: Выделить всё

$dom = new DomDocument();
$dom->load("pages/goods/goods.xml");
$xpath = new domxpath($dom);
$path="/GOODS/TYPE";
$type = $xpath->query($path);
foreach ($type as $n_type)
{
  $ntype=$n_type->getElementsByTagName('NTYPE');
  foreach ($ntype as $node)
  {
    $str=$node->textContent;
    iconv('UTF-8','windows-1251',$str);
    echo
     "<TR>
       <TD width=541 valign=top>
       <div style='padding:15;padding-right:30' class='ver11'>$str:</div>
       </TD>
      </TR>";
  }
}
Причем функция iconv возвращает true...может для нее надо какие-нибудь конфиги подправить?
p.s.: PHP version 5.0.3, кодировка файла с данными windows-1251.
berkut
Сообщения: 82
Зарегистрирован: 26 авг 2004, 19:07

Дык если данные в windows-1251 зачем их конвертить из 'UTF-8' в 'windows-1251'?
ANDeath
Сообщения: 4
Зарегистрирован: 15 ноя 2005, 12:42

Это я про пропись в xml-файле:

Код: Выделить всё

<?xml version='1.0'  encoding='windows-1251'?>
Насколько мне известно, все данные, получаемые из xml-файла с помощью xmldom, представляются в виде unicode.
Ибо вся html страница в win-1251 - от сюда есть необходимость конвертить.
А разницы, если убрать iconv, я не наблюдаю, потому и думаю, что может надо где-то настройки изменить для этой функции.
Буду очень благодарен если кто-нибудь поделится опытом, слишком долго я уже над этим бьюсь...
ANDeath
Сообщения: 4
Зарегистрирован: 15 ноя 2005, 12:42

как оказалось, функция в случае успеха возвращает не true, а результат конвертирования, т.е. код заменяем соответственно на:

Код: Выделить всё

$str = iconv('UTF-8','cp1251',$str);
Финито ля комеди, всем спасибо за внимание...)
Ответить