[umka]

[umka]
Рейтинг
456
Регистрация
25.05.2008
newseditor:
[umka], после preg_match(). вставил, совсем не показывает не только минус, но и значение температуры.

$pogoda = file_get_contents('http://export.yandex.ru/weather/?city=хххх');
preg_match('/<temperature>(.*?)<\/temperature>/i',$pogoda,$temp);
$temp[1]=iconv('UTF-8','CP1251',$temp[1]);

$vivod = "<div style=\"float:left;margin-top:18px;font-size:18px;\">
$temp[1] °

Или перед preg_match делаем

$pogoda=iconv('UTF-8','CP1251',$pogoda);

Ещё, кстати, очень рекомендую почитать какую-нибудь книжку про PHP. Вреда точно не будет :)

Ink-developer:
iconv часто теряет данные когда в документе встречаются символы в разных кодировках

Вы имеете в виду ситуацию, когда в конвертируемой строке часть данных в одной кодировке, а часть в другой?

Если да, то это не упущение iconv, а упущение программиста, допустившего смешение кодировок в одной строке.

А iconv лишь выполняет механическую работу и делает это замечательно :)

Напишите в разделе "Администрирование серверов". Кто-нибудь поможет.

PVasili:
Лучше использовать:
mb_convert_encoding ($temp,"UTF-8" ,"Windows-1251")

Чем лучше?

Так у вас $temp образуется только после preg_match().

Т.е. строка ДО и ПОСЛЕ iconv остаётся без изменений? :)

newseditor:
код не срабатывает.

И в чём это проявляется?

newseditor:
Почему $data? Там же $temp.

Потому что я лишь привожу пример использования функции iconv()

newseditor:
Посмотрел, Яндекс отдает в юникоде . У меня сайт в кодировке windows-1251. Как быть?

Значит, в обратную сторону :)

$data=iconv('UTF-8','CP1251',$data);

Я подозреваю, что всё-таки не ANSI, а ASCII :)

$data=iconv('ASCII','UTF-8',$data);

И скорее всего, Яндекс отдаёт в CP1251. Проверьте, что там написано в http-заголовках в ответе Яндекса. Вот какая кодировка там написана, из той и перекодируйте в UTF-8.

Всего: 6067