кодировка или....
Здравствуйте! не могу разобраться в чем тут дело, но думаю, что дело в кодировке! Скрипт который подключается к гуглу для перевода. Если переводится с англ на русс, то все ок, а если наоборот то в ответ получаю (???? ????? ????)
<?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, время: 17:33. |