Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> domxml: вывод инфы в win-1251 
:(
    Опции темы
ANDeath
Дата 9.4.2006, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 9.4.2006
Где: Краснодар

Репутация: нет
Всего: нет



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

$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, в файле с данными установленно encoding='windows-1251'.
PM MAIL   Вверх
ZlojEzh
Дата 9.4.2006, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 2
Всего: 15



Код

$str = iconv('UTF-8','cp1251',$str); 

PM MAIL ICQ   Вверх
Ciber SLasH
Дата 9.4.2006, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Функция iconv() возвращает строку в случае успеха.
Поэтому нужно писать так:
Код

$str = iconv('UTF-8','windows-1251',$str);

Добавлено @ 01:32
Упс, опаздал... smile
PM   Вверх
Resident
  Дата 21.8.2008, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 25.9.2006

Репутация: нет
Всего: 0



У меня похожая проблема. Беру RSS отсюда: http://credit.webmoney.ru/doc/CTendersRSS.xml , данные приходят в юникоде. Нужно перекодировать в windows-1251. Я пишу следующий код:

Код

$rss_data = file_get_contents($url);
$rss_data = iconv('UTF-8', 'WINDOWS-1251', $rss_data);


и iconv возвращает false. В чем может быть проблема не знаю. PHP 4.4.9
PM   Вверх
jsa
Дата 22.8.2008, 06:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: нет
Всего: 20



а php собрано с поддержкой iconv?

Добавлено через 3 минуты и 31 секунду
Цитата(Resident @  21.8.2008,  22:24 Найти цитируемый пост)
и iconv возвращает false. В чем может быть проблема не знаю. PHP 4.4.9

имхо наверняка в файла содержаться символы, которые iconv не может перевести, по крайней мере базовый iconv (который в ос) вылетает в таких случаях


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
Resident
Дата 22.8.2008, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 25.9.2006

Репутация: нет
Всего: 0



2 jsa
iconv подключен.

Код

function_exists('iconv'); // true


Цитата

имхо наверняка в файла содержаться символы, которые iconv не может перевести, по крайней мере базовый iconv (который в ос) вылетает в таких случаях

я тоже думаю, что есть какие то не поддерживаемые символы, потому, что другие строки конвертируются нормально. и как в этом случае можно перевести из UTF-8 в WINDOWS-1251?
PM   Вверх
jsa
Дата 25.8.2008, 05:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: нет
Всего: 20



Цитата(Resident @  22.8.2008,  18:06 Найти цитируемый пост)
я тоже думаю, что есть какие то не поддерживаемые символы, потому, что другие строки конвертируются нормально. и как в этом случае можно перевести из UTF-8 в WINDOWS-1251?

Цитата

string iconv ( string $in_charset, string $out_charset, string $str )

Производит преобразование кодировки символов строки str из начальной кодировки in_charset в конечную out_charset. Возвращает строку в новой кодировке, или FALSE в случае ошибки. 

Если добавить //TRANSLIT к параметру out_charset будет включена транслитеризация. Это означает, что вслучае, когда символа нет в конечной кодировке, он заменяется одним или несколькими аналогами. Если добавить //IGNORE, то символы, которых нет в конечной кодировке, будут опущены. Иначе, будет возвращена строка str, обрезанная до первого недопустимого символа. 




--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
sTa1kEr
Дата 25.8.2008, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 5
Всего: 146



PM MAIL   Вверх
Resident
Дата 26.8.2008, 02:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 25.9.2006

Репутация: нет
Всего: 0



jsa Спасибо.

sTa1kEr Так и не понял какое отношение твой пост имеет к проблеме перекодировки символов.
PM   Вверх
sTa1kEr
Дата 26.8.2008, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 5
Всего: 146



Цитата(Resident @  26.8.2008,  03:42 Найти цитируемый пост)
sTa1kEr Так и не понял какое отношение твой пост имеет к проблеме перекодировки символов. 

Прямое. Ответ на вопрос можно было получить значительно быстрее от самого PHP.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0947 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.