【问题标题】:Microsoft Translator api return weird characters微软翻译 api 返回奇怪的字符
【发布时间】:2016-06-03 00:16:00
【问题描述】:

也许有人可以帮助我解决这个问题。使用微软开发者 api 翻译文本会输出例如这个英文文本,“This email address is already registered!”像这样的法语“Cette adresse email 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;
}

【问题讨论】:

    标签: php api curl bing


    【解决方案1】:

    检查一下:

    PHP Curl UTF-8 Charset

    正如上面所说:

    简单:当您使用 curl 时,它会将字符串编码为 utf-8,您只需要将它们解码..

    说明

    string utf8_decode ( string $data )

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多