2016-06-03 3 views
0

Vielleicht kann mir jemand dabei helfen. Wenn Sie den Microsoft-Entwickler api für den Übersetzungstext verwenden, wird zum Beispiel dieser Text auf Englisch ausgegeben: "Diese E-Mail-Adresse ist bereits registriert!" zu Französisch wie folgt "Cette adresse email est déjà enregistrée!" was wirklich so sein sollte: "Cette adresse email est déjà enregistrée!". Gibt es eine Möglichkeit, das zu beheben? Mein einfaches Skript ist dies in php:Microsoft Translator api kehren seltsame Zeichen zurück

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

Antwort

1

prüfen dieses:

PHP Curl UTF-8 Charset

Wie es dort sagt:

Ganz einfach: Wenn Sie curl verwenden es codiert die Zeichenfolge utf -8 Sie müssen sie nur decodieren.

Beschreibung

string utf8_decode (string $data)

Diese Funktion decodiert Daten, von denen angenommen wird, dass sie UTF-8-codiert sind, nach ISO-8859-1.

+1

Vielen Dank das hat funktioniert. – jessiPP