2012-02-15 40 views
10

Tại sao %2526 được sử dụng thay vì %26 để mã hóa số &?Mã hóa url% 2526 là gì?

Im gọi URL đến trang web bên ngoài và khi tôi mã hóa các thông số &%2526, thông số được truyền chính xác nhưng khi tôi chỉ sử dụng %26 thì không.

+0

Điều đó tùy thuộc vào cách trang web bên ngoài thực hiện giải mã. 'encodeURIComponent (" & ")' cung cấp cho tôi '"% 26 "'. –

+2

Tại sao lại là downvote? –

Trả lời

15

Nếu bạn mã hóa url ký hiệu và bạn nhận được %26. Nếu bạn mã hóa url %26 bạn nhận được %2526. Vì vậy, nó được mã hóa url hai lần.

5

%25 là ký tự phần trăm, vì vậy %2526 URLDecoded kết quả trong

%26 

mà URLDecoded kết quả trong

& 

Đối với một số lý do, cuộc gọi bạn thực hiện dường như đòi hỏi gấp đôi trăm mã hóa đầu vào. Không biết nhiều hơn về những gì bạn đang làm, không thể biết tại sao, nhưng tôi đoán tất cả là theo thứ tự.

+0

Chỉ cần tự hỏi - bạn có mang theo các mã này trong đầu của bạn hoặc bạn đã chạy nó một bộ giải mã? :) – Czechnology

+0

@ Công nghệ tôi chạy chúng thông qua bộ giải mã. :) Tôi không thể ghi nhớ những thứ như thế này để cứu mạng tôi! –

1

Dường như nó được giải mã hai lần trong quá trình, trước tiên từ %2526 đến %26 và sau đó từ %26 đến &.
Bạn không nên sống quá lâu vì lý do tại sao; nếu điều này hoạt động, chỉ cần sử dụng nó như thế này.

0

& thực sự được mã hóa là %26.

Bạn có thể kiểm tra nó tạo ra một tập tin HTML, mở nó trong một trình duyệt, nhập biểu tượng bạn cần phải kiểm tra và xem xét các URL dẫn đến trình duyệt:

<form> 
<input type='text' name='qwe'> 
<input type='submit'> 
</form> 
0

Nếu URL được sử dụng trong URL trả về hoặc giá trị của một chuỗi truy vấn khác, các ký tự Dành riêng và Bị loại trừ sẽ được mã hóa gấp đôi. & được mã hóa đơn là% 26 và được mã hóa kép thành% 2526.