Microsoft Translator API возвращает странные символы

Может быть, кто-то может помочь мне с этим. Использование API разработчика Microsoft для перевода текста приведет к выводу, например, этого текста на английском языке: «Этот адрес электронной почты уже зарегистрирован!» на французский, как это «Cette адрес электронной почты est déjé enregistrée!» что на самом деле должно быть так: «Cette Adresse Email est déjà enregistrée!». Есть ли способ это исправить. Мой простой скрипт это в php:

public function translate($word, $from, $to)
{
//retrieve token
$access_token = $this->get_access_token();
$url = 'http://api.microsofttranslator.com/V2/Http.svc/Translate?text='.urlencode($word).'&from='.$from.'&to='.$to;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization:bearer '.$access_token,"Content-Type: text/xml"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, False);
$rsp = curl_exec($ch);

$xmlObj = simplexml_load_string($rsp);
foreach((array)$xmlObj[0] as $val){
$translatedStr = $val;
}

return $translatedStr;
}

0

Решение

Проверь это:

PHP Curl UTF-8 Charset

Как там написано:

Просто: когда вы используете curl, он кодирует строку в utf-8, вам просто нужно их декодировать.

Описание

string utf8_decode ( string $data )

Эта функция декодирует данные, предположительно кодированные в кодировке UTF-8, в соответствии с ISO-8859-1.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]