Яндекс погода. Из ANSI в UTF-8

12 3
newseditor
На сайте с 13.11.2006
Offline
123
1944

Парсю с Яндекса погоду отсюда http://export.yandex.ru/weather/?city=хххх. В параметре <temperature>−9</temperature> на сайте вместо минуса выходит вот это

в€’
. Т.е. почему-то знак минуса выдается в ANSI. Как можно эту строку конвертировать в UTF-8? Или же из windows-1251 в UTF-8.

Эта строка в скрипте

$pogoda = file_get_contents('http://export.yandex.ru/weather/?city=хххх');
preg_match('/<temperature>(.*?)<\/temperature>/i',$pogoda,$temp);

$vivod = "<div style=\"float:left;margin-top:18px;font-size:18px;\">
$temp[1] °
[umka]
На сайте с 25.05.2008
Offline
456
#1

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

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

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

Лог в помощь!
newseditor
На сайте с 13.11.2006
Offline
123
#2

Посмотрел, Яндекс отдает в юникоде

<?xml version="1.0" encoding="utf-8"?>
. У меня сайт в кодировке windows-1251. Как быть?

Вставил

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

Не работает.

[umka]
На сайте с 25.05.2008
Offline
456
#3
newseditor:
Посмотрел, Яндекс отдает в юникоде . У меня сайт в кодировке windows-1251. Как быть?

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

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

newseditor
На сайте с 13.11.2006
Offline
123
#4
'[umka:
;9635726']Значит, в обратную сторону :)
$data=iconv('UTF-8','CP1251',$data);

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

[umka]
На сайте с 25.05.2008
Offline
456
#5
newseditor:
Почему $data? Там же $temp.

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

newseditor
На сайте с 13.11.2006
Offline
123
#6

Спасибо, [umka], за участие, но код не срабатывает.

$temp=iconv('UTF-8','CP1251',$temp);  
[umka]
На сайте с 25.05.2008
Offline
456
#7
newseditor:
код не срабатывает.

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

newseditor
На сайте с 13.11.2006
Offline
123
#8

Минус так же показывается неверно

в€’4 °
[umka]
На сайте с 25.05.2008
Offline
456
#9

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

newseditor
На сайте с 13.11.2006
Offline
123
#10

Я прошу прощения, [umka], Вот код



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

$pogoda = file_get_contents('http://export.yandex.ru/weather/?city=хххх');
preg_match('/<temperature>(.*?)<\/temperature>/i',$pogoda,$temp);

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

Может я неверно вставил строку.

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий