Google 翻译 API v2 - 跳过单词和特殊字符
Google Translate API v2 - skip words and special character
我正在尝试将 Google API V2 与 PHP
一起使用
我需要排除一些词,所以我将它们包装成 <span class"notranslate">WORD</span>
问题是我的文本包含一些特殊字符,所以我使用 urlencode($input)
问题是 urlencode
破坏了排除词功能...
我做错了什么?
例子
$url = "https://www.googleapis.com/language/translate/v2";
$params = array(
'key' => $helper->getConfigValue('google_api'),
'source' => $from,
'target' => $to, // NOTE for CHINESE zh-CN
'q' => urlencode($input),
);
$url .= '?' . http_build_query($params);
$handle = curl_init($url);
....
http_build_query 已经应用了 url 编码,所以 urlencode($input)
是多余的
<?php
$str = '<span class="notranslate">WORD</span>';
$params = [
'single' => $str,
'double' => urlencode($str)
];
echo http_build_query($params);
结果:
single=%3Cspan+class%3D%22notranslate%22%3EWORD%3C%2Fspan%3E
double=%253Cspan%2Bclass%253D%2522notranslate%2522%253EWORD%253C%252Fspan%253E
注意 double
上的双重编码。
我正在尝试将 Google API V2 与 PHP
一起使用我需要排除一些词,所以我将它们包装成 <span class"notranslate">WORD</span>
问题是我的文本包含一些特殊字符,所以我使用 urlencode($input)
问题是 urlencode
破坏了排除词功能...
我做错了什么?
例子
$url = "https://www.googleapis.com/language/translate/v2";
$params = array(
'key' => $helper->getConfigValue('google_api'),
'source' => $from,
'target' => $to, // NOTE for CHINESE zh-CN
'q' => urlencode($input),
);
$url .= '?' . http_build_query($params);
$handle = curl_init($url);
....
http_build_query 已经应用了 url 编码,所以 urlencode($input)
是多余的
<?php
$str = '<span class="notranslate">WORD</span>';
$params = [
'single' => $str,
'double' => urlencode($str)
];
echo http_build_query($params);
结果:
single=%3Cspan+class%3D%22notranslate%22%3EWORD%3C%2Fspan%3E
double=%253Cspan%2Bclass%253D%2522notranslate%2522%253EWORD%253C%252Fspan%253E
注意 double
上的双重编码。