Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 谷歌翻译API和字符编码_Php_Json_Google Translate - Fatal编程技术网

Php 谷歌翻译API和字符编码

Php 谷歌翻译API和字符编码,php,json,google-translate,Php,Json,Google Translate,我在Google的Translate API中使用下面的PHP代码,我读到json_encode需要UTF-8输入,所以我想知道如何知道Google是否返回UTF-8编码字符给我 // URL Encode string $str = urlencode($str); // Make request $response = file_get_contents('https://www.googleapis.com/language/translate/v2?key=' . GTRAN_KEY

我在Google的Translate API中使用下面的PHP代码,我读到
json_encode
需要UTF-8输入,所以我想知道如何知道Google是否返回UTF-8编码字符给我

// URL Encode string
$str = urlencode($str);

// Make request
$response = file_get_contents('https://www.googleapis.com/language/translate/v2?key=' . GTRAN_KEY . '&target=es&source=en&q=' . $str);

// Decode json response to array
$json = json_decode($response,true);
如果失败(由于任何原因,包括字符集问题),它将返回
null
,因此您可以检查它。要具体地更改编码,可以使用

if(!mb_detect_encoding($response, 'UTF-8', true)){
  // error: no utf-8
}else{
  $json = json_decode($response,true);
  if($json === null){
    // error: json_decode failed (or google returned 'null')
  }else{
    // ok, do great stuff here
  }
}