3

我正在将以下 PHP 代码与 Google 的 Translate API 一起使用,并且我已经阅读了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);
4

1 回答 1

5

如果json_decode失败(出于任何原因,包括字符集问题),它将返回null,所以你可以检查一下。要专门检查编码,您可以使用mb_detect_encoding.

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
  }
}
于 2012-05-05T08:51:16.757 回答