Превратить URL-кодированную строку в UTF-8 - PullRequest
3 голосов
/ 16 октября 2011

Вчера я столкнулся с проблемой получения строк Unicode из URL.На самом деле я использую CodeIgniter и сегменты URL будут переданы в контроллер / функцию ( параметры ).Я не знаю, CI меняет кодировку или что-то еще.У меня есть правильная кодировка в моей HTML-странице в содержимом и в адресной строке, пока я не получу эти сегменты Unicode.

Например:

localhost/df-gamez/news/افتتاح-جدید-سایت-تیم-دریم-فکتوری

Последний сегмент - это символы перизана, которые соответствуют UTF-8.Он везде присутствует правильно, но когда я получу его в своем коде, он обернется примерно так:

%d8%a7%d9%81%d8%aa%d8%aa%d8%a7%d8%ad-%d8%b3%d8%a7%db%8c%d8%aa-%d8%ac%d8%af%db%8c%d8%af-
%d8%aa%db%8c%d9%85-%d8%af%d8%b1%db%8c%d9%85-%d9%81%da%a9%d8%aa%d9%88%d8%b1%db%8c

Я попытался изменить его на UTF-8 с помощью mb_encode, но этого не произошло.Моя HTML-страница и файл контроллера отформатированы как UTF-8 без спецификации.

Peace Out!

1 Ответ

7 голосов
/ 16 октября 2011

Используйте функцию urldecode для декодирования.

echo urldecode("%d8%a7%d9%81%d8%aa%d8%aa%d8%a7%d8%ad-%d8%b3%d8%a7%db%8c%d8%aa-%d8%ac%d8%af%db%8c%d8%af-%d8%aa%db%8c%d9%85-%d8%af%d8%b1%db%8c%d9%85-%d9%81%da%a9%d8%aa%d9%88%d8%b1%db%8c");

даст вам افتتاح-سایت-جدید-تیم-دریم-فکتوری

...