在URL中发送阿拉伯字符

时间:2011-12-21 14:55:47

标签: php utf-8 character-encoding query-string urlencode

我有这些阿拉伯语的句子:

  

نايتيدأمامهعشرةأيامفقطلكييقررمستقبلبرباتوففيالنادي

必须在网址中发送。我试过这种方法:

$url = 'http://example.com/?q='.urlencode('نايتيد أمامه عشرة أيام فقط لكي يقرر مستقبل برباتوف في النادي');

该编码的结果是:     %D9%86%D8%A7%D9%8A%D8%AA%D9%8A%D8%AF +%D8%A3%D9%85%D8%A7%D9%85%D9%87 +%D8%B9% D8%B4%D8%B1%D8%A9 +%D8%A3%D9%8A%D8%A7%D9%85 +%D9%81%D9%82%D8%B7 +%D9%84%D9%83%D9 %8A +%D9%8A%D9%82%D8%B1%D8%B1 +%D9%85%D8%B3%D8%AA%D9%82%D8%A8%D9%84 +%D8%A8%D8% B1%D8%A8%D8%A7%D8%AA%D9%88%D9%81 +%D9%81%D9%8A +%D8%A7%D9%84%D9%86%D8%A7%D8%AF %D9%8A

但是php脚本在$ _GET ['q']查询字符串中收到了这个:

نايتيد أمامه عشرة أيام Ùقط لكي يقرر مستقبل برباتو٠ÙÙŠ النادي

php文件是UTF-8编码的。有什么想法吗?

4 个答案:

答案 0 :(得分:4)

您必须对已编码的实体进行urldecode。另外请记住,UTF8和PHP不是很好的组合。

答案 1 :(得分:2)

正如我在其他问题中提到的,你应该对阿拉伯语文本进行urlencode

urlencode('كلام-عربي')

将charset代码添加到页面的head标签非常重要,否则链接将无法正常工作

<meta charset="utf-8">

答案 2 :(得分:1)

不要使用urlencode只使用rawurlencode

答案 3 :(得分:0)

正如我在其他问题中提到的,你应该在URI

中对阿拉伯文本进行urldecode

echo urldecode(explode('?',$ _SERVER ['REQUEST_URI'],2));