我正在使用以下PHP代码和Google的Translate API,我已经读过json_encode
需要UTF-8输入,所以我想知道如何知道Google是否向我返回UTF-8编码字符?< / p>
// 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);
答案 0 :(得分:4)
如果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
}
}