Google Maps + fsockopen + адрес на русском.

bizzona

Новичок
Google Maps + fsockopen + адрес на русском.

Проблема следующая:

Пытаюсь запросить координаты введённого адреса на русском через geocoding. Скрипт примерно
следующий

PHP:
			    $addr = "/maps/geo?q=".$this->address."&output=xml&key=".$this->googleKey."&oe=utf-8";
				echo "<br>".$addr."<br>";
				fputs($fp, "GET ".$addr."\r\n HTTP/1.1\r\n");
   				fputs($fp, "Host: ".$this->googleHost."\r\n");
   				fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n\r\n");
   				fputs($fp, "User-Agent: MSIE\r\n");
   				fputs($fp, "Connection: Close\r\n\r\n");
				
				$request = fgets($fp);
Проблема в следующем если я ввожу адрес такого вида: "москва улица петрозаводская" то получаю через сокерт ответ о том что адрес не найден 602. Беру значение переменной $addr и вставлюя в броезере эксплорер напрямую - то адрес возращается.
/maps/geo?q=%E3%EE%F0%EE%E4+%CC%EE%F1%EA%E2%E0+%F3%EB%E8%F6%E0+%CF%E5%F2%F0%EE%E7%E0%E2%EE%E4%F1%EA%E0%FF&output=xml&key=/*my key*/

при это это такжеуспешно отрабатывает(возрашаются координаты) и в опере . Но аналогичная ситуация проявляется в фаерфоксе где также возращается от гугла 602 ошибка. Пытаюсь сделать тоже самое через curl - 602 ошибка. Кто нибудь сталкивался с этой проблемой - интересно что дополнительно шлёт в сокет броузеры эксплорер и опера? пытался также переводть в utf-8 перед оправкой в сокет не помогло :-((((
 

bizzona

Новичок
да я это использовал перед передачей. проблема уже решена - гугл сервси понимает только ютф-8 сделал снова перекодировку в ютф-8 и заработала. изначально где то сделал ошибку
 

dimagolov

Новичок
bizzona, транслитерируй. недавно была тема, что русские строки в UTF после чего закоденые легко не вписываются в длинну запроса и посылаются за елки. А транслит понимается на ура и ищется хорошо.
 

bizzona

Новичок
да я тоже пробовал транслитерацию но например если транслитировать петрозаводская улица - то гугл не находил .соотвествено принял решение делать на ютф-8 да и адрсеа по идее не большие - дожно влазить в длину запроса.
 
Сверху