谷歌翻译API v2编码中文字符和指南

时间:2013-06-21 01:24:58

标签: php html curl google-api microsoft-translator

以下解决方案作为答案

$test = "橘色,灰色,深蓝,绿色";

$ completeColours也包含相同的文本,只是文本通过for循环逐个字符联合形成像$ test这样的文本。

我手动复制粘贴的$ test的字符。这里奇怪的问题是,当我将$ test传递到下面的url时,它可以工作!但是当我把$ completeColours而不是$ test时,它不起作用:O

$ch = curl_init('https://api.datamarket.azure.com/Bing/MicrosoftTranslator/v1/Translate?To=%27'.$to.'%27&From=%27'.$from.'%27&Text=%27'.$test.'%27');

当我回复$ test我刚刚创建它时返回橘色,ç°è‰²,æ·±è“,绿色 当我回显$ completeColours时,它返回橘色,灰色,深蓝,绿色

3 个答案:

答案 0 :(得分:1)

我不知道,也许尝试使用unicode? 橘,色,灰色,深,蓝,绿色
结果
橘,色,灰色,深蓝,绿,色

答案 1 :(得分:1)

改为使用rawurlencode($completeColours)

答案 2 :(得分:1)

使用谷歌翻译API v2,它理解中文的urlencode,微软的翻译api没有。

我将在此处分享此代码,使用PHP中的CURL进行Google Translator API v2

    $text = urlencode($completeColours);
$from = 'zh-CHS';
$to = 'en';

$ch = curl_init('https://www.googleapis.com/language/translate/v2?key=API_KEY_HERE&source=zh-CN&target=en&q='.$text.'');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);
$newresult = json_decode($result,true);
$student_id = $newresult['data']['translations'][0]['translatedText'];

echo $student_id;

如果您是谷歌API的首次使用者,请记住在谷歌API中设置配额,您自己的配额集,不要使用默认值。出于某种原因,如果您不自定义自己的配额,它将返回错误达到最大限制。