我一直在寻找和尝试几个小时,似乎无法找到任何能够真正解决我的问题的东西。 我打电话给一个PHP函数,它使用Google翻译API抓取内容,并传递一个要翻译的字符串。 有很多情况下,编码受到影响,但我已经完成了这一点,它仍然工作得很好,据我记忆。PHP的编码问题
下面是调用该函数的代码:
$name = utf8_encode(mt($name));
而这里的实际功能:
function mt($text) {
$apiKey = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
$url = 'https://www.googleapis.com/language/translate/v2?key=' . $apiKey . '&q=' . rawurlencode($text) . '&source=en&target=es';
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($handle);
echo curl_error($handle);
$responseDecoded = json_decode($response, true);
$responseCode = curl_getinfo($handle, CURLINFO_HTTP_CODE); //Fetch the HTTP response code
curl_close($handle);
if($responseCode != 200) {
$resultxt = 'failed!';
return $resultxt;
}
else {
$resultxt = $responseDecoded['data']['translations'][0]['translatedText'];
return utf8_decode($resultxt); //return($resultxt) won't work either
}
}
我到底是什么了越来越为任何加重字符乱码字符,如顾Ã del desarrollador de XML 我试过编码/解码的所有组合我只是无法得到它的工作...
你在哪里看到乱码?在一个HTML文件中? – Phil
我正在用从该函数返回的字符串记录一个XML文件。我多次调用该函数,用于我需要翻译的XML文件的每个元素。我正在使用SimpleXML - '$ xml-> asXML($ xmlFile)' –
我想出了(部分)。我正在处理上述的XML文件,它需要@gonzalon建议的编码声明,并且必须使用以下代码才能使其正确显示: '$ resultxt = $ responseDecoded ['data'] ['translations' ] [0] [ 'translatedText']; $ str = html_entity_decode($ resultxt); $ utf8 = utf8_decode($ str); return $ utf8;' –