У меня есть URL-адрес, который выглядит так (обратите внимание на символы "):
http://tinklarastis.omnitel.lt/kokius-aptarnavimo-kanalus-klientui-siulo-„omnitel"-1494
Я получаю его от парсера SimplePie, если это имеет значение. Теперь, если вы попытаетесь перейти к этому конкретному URL-адресу в своем браузере и скопировать его из адресной строки, вы получите URL-адрес с символами, отличными от ASCII percent кодируются:
http://tinklarastis.omnitel.lt/kokius-aptarnavimo-kanalus-klientui-siulo-%E2%80%9Eomnitel%E2%80%9C-1494
Я пытаюсь понять, как я могу имитировать такое же преобразование в PHP. Я не могу просто использовать urlencode()
или urlrawencode()
, поскольку они кодируют оба символа без символа ASCII и зарезервированные символы, тогда как в моем случае зарезервированные символы (/? &, и т.д.) должны оставаться такими, какие они есть.
До сих пор я видел только решения, которые включали разделение URL-адреса на куски между зарезервированными символами, а затем с помощью urlencode()
, но это кажется мне взломанным, и я надеюсь там более элегантное решение. Я пробовал различные варианты iconv()
, mb_convert_encoding()
, но пока не добился успеха.