Google translate - где же баг ?

Статус
В этой теме нельзя размещать новые ответы.

Mirovan

Новичок
Google translate - где же баг ?

Есть класс и вызов его:

PHP:
<?php

class Google_API_translator {
    public $opts = array("text" => "", "language_pair" => "en|it");
    public $out = "";

    function __construct() {
    }

    function setOpts($opts) {
        if($opts["text"] != "") $this->opts["text"] = $opts["text"];
        if($opts["language_pair"] != "") $this->opts["language_pair"] = $opts["language_pair"];
    }

    function translate() {
        $this->out = "";
        $google_translator_url = "http://translate.google.com/translate_t?langpair=".urlencode($this->opts["language_pair"])."&amp;";
        $google_translator_data .= "text=".urlencode($this->opts["text"]);

		$gphtml = $this->postPage(
			array(
				"url" => $google_translator_url,
				"data" => $google_translator_data
			)
		);

		$out = substr($gphtml, strpos($gphtml, "<div id=result_box dir=\"ltr\">"));
        $out = substr($out, 29);
        $out = substr($out, 0, strpos($out, "</div>"));
//        $this->out = iconv('KOI8-R', 'UTF-8//IGNORE', $out);	// en|ru
        $this->out = $out;
        return $this->out;
    }

    // post form data to a given url using curl libs
    function postPage($opts) {
        $html = "";
        if($opts["url"] != "" && $opts["data"] != "") {
            $ch = curl_init($opts["url"]);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_HEADER, 1);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($ch, CURLOPT_TIMEOUT, 15);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $opts["data"]);
            $html = curl_exec($ch);
            if(curl_errno($ch)) $html = "";
            curl_close ($ch);
        }
        return $html;
    }
}
?>

<?php
$g = new Google_API_translator();
$g->setOpts(
	array(
		"text" => "привет",
		"language_pair" => "ru|en"
	)
);
$g->translate();
echo $g->out;
?>

Че то старнное твориться с кодировкой - не могу перевести из RU в EN, кодировка чето гонит.

mb_detect_encoding говорит что данные в UTF-8, однако возвращаются крокозябры. Между не киррил. языками юзал utf8_encode - было все ок.

Тут же проблема :(

Как сделать передачу данных и получение в UTF-8 чтобы не мучиться с кодировкой.
 

Фанат

oncle terrible
Команда форума
Тема закрыта. Учитесь пользоваться поиском.

Прежде чем задавать вопрос - используйте поиск по форуму и FAQ:
На нахождение готового ответа на свой вопрос Вы потратите меньше своего и чужого времени, чем на создание новой темы.

Поиск по форуму

http://phpclub.ru/faq/
http://phpclub.ru/detail/
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху