Php url将汉字编码为url

Php url将汉字编码为url,php,html,curl,encoding,microsoft-translator,Php,Html,Curl,Encoding,Microsoft Translator,我正在尝试将一个汉字翻译成英语,但我认为在编码方面存在问题 如何将汉字传递给Microsoft,以便他们能够翻译并返回英文文本?因为编码问题,我似乎无法发送汉字?我试着检测编码类型 $CompleteColor中文字符 橘色,灰色,深蓝,绿色 URL编码文本 %26%2327224%3B%26%2333394%3B%2C%26%2328784%3B%26%2333394%3B%2C%26%2328145%3B%26%2334013%3B%2C%26%2332511%3B%26%2333394%

我正在尝试将一个汉字翻译成英语,但我认为在编码方面存在问题


如何将汉字传递给Microsoft,以便他们能够翻译并返回英文文本?因为编码问题,我似乎无法发送汉字?我试着检测编码类型

$CompleteColor中文字符

橘色,灰色,深蓝,绿色
URL编码文本 %26%2327224%3B%26%2333394%3B%2C%26%2328784%3B%26%2333394%3B%2C%26%2328145%3B%26%2334013%3B%2C%26%2332511%3B%26%2333394%3B

返回结果

橘色,灰色,深蓝,绿色
代码

//准备变量
$text=urlencode($completeColors);
echo$文本;
$from='zh CHT';
$to='en';
//准备卷曲命令
$key='xxx';
$ch=curl\u init('https://api.datamarket.azure.com/Bing/MicrosoftTranslator/v1/Translate?Text=%27“.$text.'%27&From=%27'.$From.'%27&To=%27'.$To.'%27');
curl_setopt($ch,CURLOPT_USERPWD,$key.:'。$key);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
//解析XML响应
$result=curl\u exec($ch);
$result=爆炸(“”,$result);
$result=explode(“”,$result[1]);
$result=$result[0];
回声$结果;

我正在研究这个问题,为了避免这个问题,我决定强迫我的中国用户用英文写地址,并加上西方字符

像这样:

这里是菜单编辑器和“动态”友好url生成器:

我用Firefox、Chrome和IE继续玩Badu。 正如你所看到的,Firefox可以在地址栏中显示中文符号,但不能在Chrome和IE上显示。所以,我问自己,什么对SEO最有利

  • 使用西方字符显示英文地址
  • 像你一样使用代码
  • 使用西方字符,但在中文输入系统中使用拼音汉字
现在我选择第一个选项,但我不确定它是否是最好的

以下是3个示例:


您的问题是什么?如何将汉字传递给Microsoft,以便他们能够翻译并返回英文文本?由于编码问题,我似乎无法发送汉字,编辑了这篇文章
// Prepare variables
$text = urlencode($completeColours);
echo $text;
$from = 'zh-CHT';
$to = 'en';

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

curl_setopt($ch, CURLOPT_USERPWD, $key.':'.$key);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


// Parse the XML response
$result = curl_exec($ch);
$result = explode('<d:Text m:type="Edm.String">', $result);
$result = explode('</d:Text>', $result[1]);
$result = $result[0];

echo $result;