2012-05-05 162 views
3

我使用谷歌的翻譯API下面的PHP代碼,我讀了json_encode要求UTF-8輸入,所以想知道我怎麼知道谷歌是否將UTF-8編碼字符返回給我?谷歌翻譯API和字符編碼

// 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

如果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 
    } 
} 
+0

非常感謝! – Brett