urlencode — Как кодировать / декодировать международные URL для представления в переполнении стека

Я изо всех сил пытаюсь найти решение (встроенное или библиотечное) для проблемы декодирования URL-адреса, содержащего символы в процентах за пределами диапазона ASCII.

Насколько я понимаю RFC 3986, мы не должны декодировать URL в целом, не разбив его на компоненты. Тем не менее, это похоже на то, что браузеры делают с «международными» символами. Например, если я вставлю этот URL в адресную строку Google Chrome:

http://www.example.com/?x=7%26z%3D6&д =% C3% A9

Это представляется как это:

http://www.example.com/?x=7%26z%3D6&Q= é

Итак, как мне сделать это с PHP без реализации моего собственного URL-декодера? Встроенная функциональность (т.е. urldecode) вернет:

http://www.example.com/?x=7&г = 6&Q= é

Что неверно (потому что теперь есть 3 параметра запроса), но ожидается (потому что urldecode не предназначен для использования на целых URL)

Я хотел бы иметь возможность реплицировать поведение браузера при отображении ссылок в моем приложении: в атрибуте href я буду использовать закодированную форму процента, но в самой привязке я буду использовать «красивую» форму.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]