кодировка или....
Здравствуйте! не могу разобраться в чем тут дело, но думаю, что дело в кодировке! Скрипт который подключается к гуглу для перевода. Если переводится с англ на русс, то все ок, а если наоборот то в ответ получаю (???? ????? ????)
<?php function translate($str, $from, $to){ if( $curl = curl_init() ){ // Задаем ссылку curl_setopt($curl,CURLOPT_URL,'http://translate.google.com/translate_t#'); // Скачанные данные не выводить поток curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt ($curl, CURLOPT_HTTPHEADER, array('Expect:')); curl_setopt($curl, CURLOPT_POSTFIELDS, 'client=t&text='.urlencode($str).'&sl='.$from.'&tl='.$to); // Задаем тип проски - сокс5 //curl_setopt($curl,CURLOPT_PROXYTYPE,CURLPROXY_SOCKS5); // Указываем сам сокс //curl_setopt($curl,CURLOPT_PROXY,'127.0.0.1:1080'); // Скачиваем $out = curl_exec($curl); // Показываем скачанные данные $res = preg_match('/<div id=result_box dir=\"ltr\">([^<]*)/',$out,$ss); // Закрываем соединение curl_close($curl); return $ss[1]; } } $str = 'Это русский текст'; echo translate($str, "ru", "en"); ?> |
iconv вам в помощь.ваш файл наверняка в кодировке cp1251
отсылать скорее всего надо в UTF-8 |
пытался, чего уже только не перепробовал, нечего не помогает, вот и решил обратиться за помощью. Странное одно, почему перевод удается с анл на рус, а вот обратно нет
|
повозился
с наскоку проблема и вправду не решается удалось выяснить, что при посыле utf возвращяется перевод в виде HTML-сущностей но после их декодировки ничего толкового не получилось пробуйте, экспереминтируйте |
уже второй день, как только не пытаюсь. Если в курл вставлять заголовок с кодировкой, то гугл вообще не производит перевода
|
Цитата:
максимум что мы можем- попросить отдать в ожидаемой кодировке советую взять firebug, или какой-нить снифер траффика, и глянуть/досконально скопировать что передает браузер на сервер при конкретном запросе затем уже смотреть в какой кодировке он посылает запрос, и в какой получает PS если тебе важен результат, я мог взятся за эту задачу на платной основе |
Часовой пояс GMT +3, время: 19:02. |