Sự khác nhau giữa số URL Encode và HTML Encode là gì?Sự khác biệt giữa Mã hóa Url và mã hóa HTML
Trả lời
HTML Encoding thoát ký tự đặc biệt trong chuỗi được sử dụng trong tài liệu HTML để tránh nhầm lẫn với các yếu tố HTML như thay đổi
"<hello>world</hello>"
để
"<hello>world</hello>"
URL Encoding hiện một tương tự điều cho các giá trị chuỗi trong URL như thay đổi
"hello+world = hello world"
để
"hello%2Bworld+%3D+hello+world"
Tôi thấy trong thực tế rằng HtmlEncode là toàn diện hơn cho cả hai kịch bản sử dụng. Như @Mehrdad chỉ ra URLEncode đặt dấu cộng vào, nhưng điều này có thể gây ra vấn đề nếu bạn sử dụng urlrewrites chẳng hạn. Vì vậy, sử dụng HtmlEncode ngay cả đối với url là ít vấn đề. Tôi chưa bao giờ tìm thấy một vấn đề bằng cách sử dụng HtmlEncode cho url nhưng tôi có khi sử dụng UrlEncode cho url. Theo tôi, UrlEncode hầu hết là vô ích. –
Mã hóa HTML và mã hóa URL làm những điều cơ bản khác nhau. Ví dụ: nếu bạn mã hóa HTML, 'xin chào thế giới' và cố thêm nó vào url, bạn sẽ nhận được một url không hợp lệ. Cả hai đều quan trọng và nên được sử dụng cho các tình huống khác nhau. – Neil
Chỉ cần phải đi qua và thay thế một số tập quán HtmlEncode để mã hóa url bằng UrlEncoding, các vấn đề với mã hóa không gian và một số ký tự đặc biệt khác – PJUK
HTMLMã và URLGiao dịch mã với các ký tự không hợp lệ trong HTML và URL hoặc chính xác hơn, các ký tự cần phải được viết đặc biệt để diễn giải chính xác. Ví dụ: trong HTML, các ký tự < và> được sử dụng để chỉ thẻ. Do đó, nếu bạn muốn viết một công thức toán học, chẳng hạn như 1 + 1 < 2 + 2, '<' thường được hiểu là phần đầu của thẻ. HTMLEncoding biến ký tự này thành "& lt;" đó là biểu diễn được mã hóa của dấu nhỏ hơn. URLEncoding thực hiện tương tự, nhưng đối với URL, các ký tự đặc biệt khác nhau, mặc dù có một số trùng lặp.
urlEncode thay thế các ký tự đặc biệt bằng các ký tự có thể được hiểu bởi trình duyệt web/máy chủ web nhằm mục đích giải quyết ... do đó URL. Ví dụ, không gian được thay thế bằng% 20, '=% 27 vv ...
Xem các tài liệu tham khảo:
- http://www.blooberry.com/indexdot/html/topics/urlencoding.htm
- http://www.degraeve.com/reference/urlencoding.php
HtmlEncode thay thế ký tự đặc biệt với chuỗi ký tự được công nhận bởi chính công cụ HTML để hiển thị nội dung của trang - những thứ như & trở thành & or < = < > = <
điều này ngăn không cho công cụ HTML giải thích các ký tự này thành các phần của đánh dấu HTML và do đó hiển thị chúng như thể chúng là các chuỗi.
Xem tài liệu tham khảo này:
Trên thực tế URLEncode thay thế không gian với +, có thể là một vấn đề trong một số tình huống. – NetMage
Cả HTML và URL được về cơ bản rất hạn chế ngôn ngữ. Là ngôn ngữ họ thêm ý nghĩa vào các từ khóa hoặc toán tử cụ thể. Đối với cả hai ngôn ngữ này, từ khóa hầu như luôn là các ký tự đơn. Ví dụ
- HTML: > và <
- URL:/và:
Trong việc sử dụng của mỗi ngôn ngữ mặc dù nó có thể sử dụng các cấu trúc một cách mà không đảm bảo ý nghĩa của ngôn ngữ. Ví dụ: bài đăng này chứa ký tự >. Tôi không muốn nó được hiểu là HTML, chỉ là văn bản.
Đây là nơi các phương pháp mã hóa và giải mã được phát. Các phương thức này tương ứng sẽ lấy một chuỗi và chuyển đổi bất kỳ ký tự nào nếu không sẽ được coi là từ khóa thành một biểu mẫu thoát mà sẽ không được hiểu là một phần của ngôn ngữ.
Ví dụ: Chuyển > vào HtmlEncode sẽ trả về & gt;
Tôi không biết bạn đang làm việc với ngôn ngữ nào, nhưng ví dụ PHP manual cung cấp giải thích tốt.
URLEncode
Trả về một chuỗi trong đó tất cả ký tự không phải chữ và số trừ -_. đã được thay thế bằng phần trăm (%) ký hiệu theo sau là hai chữ số thập phân và dấu cách được mã hóa dưới dạng dấu cộng (+). Nó được mã hóa giống như cách dữ liệu đã đăng từ biểu mẫu WWW là được mã hóa, tương tự như trong ứng dụng/x-www-form-urlencoded loại phương tiện. Điều này khác với mã hóa » RFC 1738 (xem rawurlencode()) vì lý do lịch sử, dấu cách được mã hóa dưới dạng dấu cộng (+).
Mã hóa URL sẽ mã hóa các ký tự sao cho chúng hợp lệ cho các URL. Ví dụ. Mã hóa HTML '?' trở thành '% 3F' sẽ mã hóa các ký tự sao cho chúng hợp lệ cho HTML. Ví dụ. '<' trở thành '<' –
Nếu bạn muốn mã hóa để sử dụng trong URL, bạn sử dụng mã hóa URL. Nếu bạn muốn mã hóa để hiển thị trên một trang HTML, bạn HTML mã hóa nó –