我一直在寻找和尝试几个小时,似乎无法找到任何能够解决我问题的东西。 我正在调用一个PHP函数,它使用Google翻译API来抓取内容,我正在传递一个字符串进行翻译。 有很多情况下编码受到影响,但我之前已经完成了这项工作,并且我记得很好。
以下是调用该函数的代码:
$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
}
}
我最终得到的是任何突出角色的乱码,例如 Guaa del desarrollador de XML 我已经尝试过编码/解码的所有组合,但我无法让它工作......
答案 0 :(得分:1)
之前我遇到过这类问题,我可以告诉你试试的是:
<head>
标记中尝试添加: <meta http-equiv=”Content-type” content=”text/html; charset=utf-8″ />
PHP
标题中: header(“Content-Type: text/html;charset=utf-8”);
Notepad ++
编码&gt; UTF-8 without BOM
.htaccess
AddDefaultCharset utf-8
正如您所说,您正在阅读来自用户的文件,您可以使用此功能:mb-convert-encoding来检查编码,以及它是否与UTF-8
转换不同。试试this:
$content = mb_convert_encoding($content, 'UTF-8');
if (mb_check_encoding($content, 'UTF-8')) {
// log('Converted to UTF-8');
} else {
// log('Could not converted to UTF-8');
}
}
return $content;
}
?&GT;