Отправка арабских символов в URL - PullRequest
4 голосов
/ 21 декабря 2011

У меня есть это арабское предложение:

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

должно быть отправлено в 1006 *1006*.Я попробовал этот подход:

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

Результат такого кодирования:% D9% 86% D8% A7% D9% 8A% D8% AA% D9% 8A% D8% AF +% D8% A3%D9% 85% D8% А7% D9% 85% D9% 87 +% D8% B9% D8% B4% D8% B1% D8% А9 +% 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%АА% D9% 82% D8% A8% D9% 84 +% D8% A8% D8% B1% D8% A8% D8% A7% D8% АА% 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 ]

4 голосов
/ 21 декабря 2011

Вы должны кодировать ваши закодированные объекты. Кроме того, помните, что UTF8 и PHP не очень хорошая комбинация.

2 голосов
/ 29 октября 2013

Как я уже упоминал в другом вопросе, Вы должны сделать urlencode арабского текста

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

И очень важно добавить код кодировки в тег заголовка страницы, иначе ссылка не будет работать

<meta charset="utf-8">
1 голос
/ 26 января 2013

не используйте urlencode, просто используйте rawurlencode

0 голосов
/ 10 января 2018

Как я уже упоминал в другом вопросе, вы должны сделать urldecode арабского текста в URI

эхо-код urldecode (взорваться ('?', $ _SERVER ['REQUEST_URI'], 2));

...