Могу ли я использовать '|'в URL? - PullRequest
4 голосов
/ 13 июня 2011

Я немного смущен этим. Я заметил, что некоторые веб-API используют символ | (например, mediawiki api - см. «Action = opensearch», параметр «namespace» говорит, что вы разделяете элементы с помощью |).

Однако я также вижу, что это строго запрещено в соответствии со спецификацией w3 URL и этого SO вопроса .

Так я неправильно понял примеры (такие как mediawiki), которые я видел? Кодирует ли браузер URL для меня за кулисами? Работает ли это с некоторыми веб-браузерами и серверами, но работает с другими?

Поскольку я создаю схему веб-API, доступ к которой будет осуществляться через код, а не через браузер, я хотел бы понять это правильно. Было бы неплохо уточнить, чтобы использовать | для некоторых терминов, но я буду использовать трюк кодирования URL, если он покажется слишком изворотливым.

1 Ответ

1 голос
/ 13 июня 2011

Нет, | не является действительным символом в URI и должно кодироваться с использованием процентного кодирования .

Но кроме этого,браузеры могут отображать октет в процентах %7C в виде | точно так же, как последовательности байтов в кодировке UTF-8 в процентах отображаются в виде символов, которые они представляют.

...