Ini tidak hanya berlaku untuk ampersand di URL, tetapi untuk semua karakter yang dipesan . Beberapa di antaranya meliputi:
# $ & + , / : ; = ? @ [ ]
Idenya sama dengan pengkodean &
dalam dokumen HTML, tetapi konteksnya telah berubah menjadi di dalam URI, selain berada di dalam dokumen HTML. Jadi, pengkodean persen mencegah masalah dengan penguraian di dalam kedua konteks.
Tempat ini sangat berguna adalah ketika Anda harus meletakkan URL di dalam URL lain. Misalnya, jika Anda ingin memposting status di Twitter:
http://www.twitter.com/intent/tweet?status=What%27s%20up%2C%20StackOverflow%3F(http%3A%2F%2Fwww.stackoverflow.com)
Ada banyak karakter yang dipesan di Tweet saya, yaitu ?'():/
, jadi saya menyandikan seluruh nilai status
parameter URL. Ini juga sangat membantu ketika menggunakan mailto:
tautan yang memiliki badan atau subjek pesan, karena Anda perlu menyandikan body
dan subject
parameter untuk menjaga garis putus, ampersand, dll utuh.
Ketika karakter dari himpunan yang disediakan ("karakter yang dilindungi") memiliki arti khusus ("tujuan yang dilindungi") dalam konteks tertentu, dan skema URI mengatakan bahwa perlu untuk menggunakan karakter itu untuk tujuan lain, maka karakter tersebut harus dikodekan persen. Persen-pengkodean karakter yang dicadangkan melibatkan konversi karakter ke nilai byte yang sesuai di ASCII dan kemudian mewakili nilai itu sebagai sepasang digit heksadesimal. Digit, didahului oleh tanda persen ("%") yang digunakan sebagai karakter pelarian, kemudian digunakan dalam URI sebagai pengganti karakter yang dipesan. (Untuk karakter non-ASCII, biasanya dikonversikan ke urutan byte dalam UTF-8, dan kemudian setiap nilai byte diwakili seperti di atas.) Karakter yang dicadangkan "/", misalnya, jika digunakan dalam "path" komponen URI, memiliki makna khusus sebagai pembatas antara segmen jalur. Jika, menurut skema URI yang diberikan, "/" perlu berada di segmen jalur, maka tiga karakter "% 2F" atau "% 2f" harus digunakan di segmen alih-alih "/" mentah.
http://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters