2016-06-03 4 views
0

Возможно, кто-то может мне помочь в этом. Использование Microsoft api для перевода текста выводит, например, этот текст на английском языке: «Этот адрес электронной почты уже зарегистрирован!» на французский, как это "Cette adresse email est dà © jà enregistrà © e!" который действительно должен быть таким: «Cette adresse email est déjà enregistrée!». Есть ли способ исправить это. Мой простой скрипт это в PHP:Microsoft Translator api возвращает странные символы

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; 
} 

ответ

1

Проверьте это:

PHP Curl UTF-8 Charset

Как сказано там:

Простой: При использовании свернуться он кодирует строку в UTF -8 вам просто нужно их расшифровать.

Описание

string utf8_decode (string $data)

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

+1

Спасибо, что сработали. – jessiPP

Смежные вопросы