繁体   English   中英

Microsoft Translator API返回奇怪的字符

[英]Microsoft Translator api return weird characters

也许有人可以帮助我。 使用Microsoft开发人员api来翻译文本时,将以英语输出该文本,例如“此电子邮件地址已被注册!”。 像这样的“法语地址电子邮件déjÃenregistrée!” 确实应该是这样的:“请发送电子邮件至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;
}

检查一下:

PHP Curl UTF-8字符集

就像那里说的那样:

简单:使用curl时,它将字符串编码为utf-8,只需要解码它们即可。

描述

string utf8_decode ( string $data )

此函数将假定为UTF-8编码的数据解码为ISO-8859-1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM