này không chỉ áp dụng để dấu và trong URL , nhưng cho tất cả reserved characters. Một số trong đó bao gồm:
# $ & + ,/: ; = ? @ [ ]
Ý tưởng là giống như mã hóa một &
trong một tài liệu HTML, nhưng bối cảnh đã thay đổi được trong URI, ngoài việc có trong tài liệu HTML. Vì vậy, mã hóa phần trăm ngăn các vấn đề với phân tích cú pháp bên trong cả hai ngữ cảnh.
Nơi điều này hữu ích rất nhiều là khi bạn cần đặt URL bên trong một URL khác. Ví dụ, nếu bạn muốn đăng một trạng thái trên Twitter:
http://www.twitter.com/intent/tweet?status=What%27s%20up%2C%20StackOverflow%3F(http%3A%2F%2Fwww.stackoverflow.com)
Có rất nhiều các nhân vật dành riêng trong Tweet của tôi, cụ thể là ?'():/
, vì vậy tôi mã hóa toàn bộ giá trị của tham số status
URL. Điều này cũng hữu ích khi sử dụng các liên kết mailto:
có nội dung hoặc chủ đề thư vì bạn cần phải mã hóa các tham số body
và subject
để giữ nguyên ngắt dòng, ký hiệu và vv.
Khi một nhân vật từ tập dành riêng (một "nhân vật dành riêng") có ý nghĩa đặc biệt (gọi là "dành riêng mục đích") trong một bối cảnh nhất định, và một URI scheme nói rằng nó là cần thiết để sử dụng nhân vật mà cho một số mục đích khác , thì ký tự phải được mã hóa phần trăm.Mã hóa phần trăm ký tự dành riêng liên quan đến việc chuyển đổi ký tự thành giá trị byte tương ứng là trong ASCII và sau đó biểu thị giá trị đó là một cặp chữ số thập lục phân. Các chữ số, đứng trước dấu phần trăm ("%") được dùng làm ký tự thoát, sau đó được sử dụng trong URI thay cho ký tự dành riêng. (Đối với một ký tự không phải ASCII, nó là thường được chuyển đổi thành chuỗi byte của nó trong UTF-8, và sau đó mỗi byte giá trị được biểu diễn như trên.) Ký tự dành riêng "/", cho ví dụ , nếu được sử dụng trong " đường dẫn "thành phần của một URI, có đặc biệt là ý nghĩa là một dấu phân cách giữa các đoạn đường dẫn. Nếu, theo lược đồ URI đã cho, "/" cần nằm trong đoạn đường dẫn, thì ba ký tự "% 2F" hoặc "% 2f" phải được sử dụng trong phân khúc thay vì thô "/".
http://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters
Nguồn
2014-02-11 15:55:01
: -% 26 không hoạt động đối với tôi. Còn có những giải pháp nào nữa ko.? – Sanjiv
@ Sanjiv: ý bạn là gì khi "không hoạt động"? – Blender
Khi tôi thay thế & đến% 26, nó vẫn hiển thị cùng một lỗi-- 'Giá trị Request.Path nguy hiểm tiềm ẩn được phát hiện từ máy khách (&). ' – Sanjiv