نايتيدأمامهعشرةأيامفقطلكييقررمستقبلبرباتوففيالنادي
必须在网址中发送。我试过这种方法:
$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编码的。有什么想法吗?
答案 0 :(得分:4)
您必须对已编码的实体进行urldecode。另外请记住,UTF8和PHP不是很好的组合。
答案 1 :(得分:2)
正如我在其他问题中提到的,你应该对阿拉伯语文本进行urlencode
urlencode('كلام-عربي')
将charset代码添加到页面的head标签非常重要,否则链接将无法正常工作
<meta charset="utf-8">
答案 2 :(得分:1)
不要使用urlencode只使用rawurlencode
答案 3 :(得分:0)
正如我在其他问题中提到的,你应该在URI
中对阿拉伯文本进行urldecodeecho urldecode(explode('?',$ _SERVER ['REQUEST_URI'],2));