nie zastosowanie tylko do ampersand w adresach URL , ale dla wszystkich reserved characters. Niektóre z nich to:
# $ & + ,/: ; = ? @ [ ]
Idea jest taka sama jak kodująca &
w dokumencie HTML, ale z kontekstu nie zmieniła się w ciągu URI, oprócz tego, że w dokumencie HTML. Tak więc kodowanie procentowe zapobiega problemom z analizą wewnątrz obu kontekstów.
Miejsce, w którym bardzo się to przydaje, polega na umieszczeniu adresu URL w innym adresie URL. Na przykład, jeśli chcesz opublikować status na Twitterze:
http://www.twitter.com/intent/tweet?status=What%27s%20up%2C%20StackOverflow%3F(http%3A%2F%2Fwww.stackoverflow.com)
Jest wiele znaków zastrzeżonych w moim Tweet, mianowicie ?'():/
, więc zakodowane całą wartość parametru status
URL. Jest to również przydatne podczas korzystania z łączy mailto:
zawierających treść wiadomości lub temat, ponieważ musisz zakodować parametry body
i subject
, aby zachować nienaruszone podziały wierszy, znaki jakości itp.
Kiedy postać z zastrzeżonego zbioru (a "zastrzeżony znak") ma specjalnego znaczenia (a "Reserved purpose") w pewnym kontekście, a schemat URI mówi, że jest to niezbędne do korzystania z tego znaku dla jakiegoś innego celu , znak musi być zakodowany procentowo.Kodowanie procentowe Znak zarezerwowany polega na konwersji znaku na jego odpowiednią wartość bajtu w ASCII, a następnie reprezentowaniu tej wartości jako pary cyfr szesnastkowych. Cyfry poprzedzone znakiem procentowym ("%"), który jest używany jako znak escape, są następnie używane w identyfikatorze URI w miejsce zarezerwowanego znaku. (Dla znaku spoza ASCII jest to zwykle konwertowane na jego sekwencję bajtową w UTF-8, a następnie każda wartość bajtu jest reprezentowana jak powyżej.) Zarezerwowany znak "/" dla przykładu , jeśli jest używany w " ścieżka "komponent URI, ma specjalny znacznik oznaczający odgraniczenie między segmentami ścieżki. Jeśli zgodnie z podanym schematem URI , "/" musi znajdować się w segmencie ścieżki, wówczas trzy znaki "% 2F" lub "% 2f" muszą być użyte w segmencie zamiast surowego "/".
http://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters
: -% 26 nie działa dla mnie. Czy istnieje jakieś inne rozwiązanie? – Sanjiv
@Sanjiv: co masz na myśli mówiąc "nie działa"? – Blender
Kiedy zamieniam i na% 26, nadal wyświetla się ten sam błąd: 'Potencjalnie niebezpieczna wartość Request.Path została wykryta przez klienta (&).' – Sanjiv