อะไรคือความแตกต่างระหว่างการเข้ารหัส URLและการเข้ารหัส HTML ?
?
กลายเป็น%3F
เข้ารหัส HTML จะเข้ารหัสอักขระเพื่อให้ใช้ได้กับ HTML เช่น<
กลายเป็น<
อะไรคือความแตกต่างระหว่างการเข้ารหัส URLและการเข้ารหัส HTML ?
?
กลายเป็น%3F
เข้ารหัส HTML จะเข้ารหัสอักขระเพื่อให้ใช้ได้กับ HTML เช่น<
กลายเป็น<
คำตอบ:
การเข้ารหัส HTML หลีกเลี่ยงอักขระพิเศษในสตริงที่ใช้ในเอกสาร HTML เพื่อป้องกันความสับสนกับองค์ประกอบ HTML เช่นการเปลี่ยนแปลง
"<hello>world</hello>"
ถึง
"<hello>world</hello>"
การเข้ารหัส URL ทำสิ่งที่คล้ายกันสำหรับค่าสตริงใน URL เช่นการเปลี่ยนแปลง
"hello+world = hello world"
ถึง
"hello%2Bworld+%3D+hello+world"
urlEncode แทนที่อักขระพิเศษด้วยอักขระที่เว็บเบราว์เซอร์ / เว็บเซิร์ฟเวอร์สามารถเข้าใจได้เพื่อจุดประสงค์ในการกำหนดแอดเดรส ... ด้วยเหตุนี้ URL ตัวอย่างเช่นช่องว่างจะถูกแทนที่ด้วย% 20, '=% 27 เป็นต้น ...
ดูข้อมูลอ้างอิงเหล่านี้:
HtmlEncode แทนที่อักขระพิเศษด้วยสตริงอักขระที่เอ็นจิน HTML รู้จักเพื่อแสดงเนื้อหาของเพจสิ่งต่างๆเช่น & กลาย& or < = < > = <
เป็นการป้องกันไม่ให้เอ็นจิน HTML แปลความหมายอักขระเหล่านี้เป็นส่วนหนึ่งของมาร์กอัป HTML ดังนั้นจึงแสดงผลเหมือนกับว่าเป็น สตริง
ดูข้อมูลอ้างอิงนี้:
ทั้ง HTML และของ URL เป็นหลักข้อ จำกัด มากภาษา เป็นภาษาที่เพิ่มความหมายให้กับคำหลักหรือตัวดำเนินการที่เฉพาะเจาะจง สำหรับทั้งสองภาษานี้คำหลักมักเป็นอักขระเดี่ยว ตัวอย่างเช่น
ในการใช้ภาษาแต่ละภาษาแม้ว่าจะสามารถใช้โครงสร้างเหล่านี้ในลักษณะที่ไม่มั่นใจในความหมายของภาษา ตัวอย่างเช่นโพสต์นี้มีอักขระ> ฉันไม่ต้องการให้ตีความเป็น HTML เพียงแค่ข้อความ
นี่คือจุดที่วิธีการเข้ารหัสและถอดรหัสเข้ามามีบทบาท วิธีการเหล่านี้จะใช้สตริงตามลำดับและแปลงอักขระใด ๆ ที่จะถือว่าเป็นคีย์เวิร์ดเป็นรูปแบบ Escape ซึ่งจะไม่ถูกตีความว่าเป็นส่วนหนึ่งของภาษา
ตัวอย่างเช่น: การผ่าน> เข้าสู่ HtmlEncode จะคืนค่า & gt;
HTMLEncode และ URLEncode จัดการกับอักขระที่ไม่ถูกต้องใน HTML และ URL หรือถูกต้องมากขึ้นอักขระที่ต้องเขียนขึ้นเป็นพิเศษเพื่อให้ตีความได้อย่างถูกต้อง ตัวอย่างเช่นใน HTML จะใช้อักขระ <and> เพื่อระบุแท็ก ดังนั้นหากคุณต้องการเขียนสูตรคณิตศาสตร์เช่น 1 + 1 <2 + 2 โดยปกติ "<" จะถูกตีความว่าเป็นจุดเริ่มต้นของแท็ก HTMLEncoding เปลี่ยนอักขระนี้ให้เป็น "& lt;" ซึ่งเป็นตัวแทนที่เข้ารหัสของเครื่องหมายน้อยกว่า การเข้ารหัส URLE จะเหมือนกัน แต่สำหรับ URL ซึ่งอักขระพิเศษจะแตกต่างกันแม้ว่าจะมีการทับซ้อนกันบ้างก็ตาม
ฉันไม่รู้ว่าคุณใช้ภาษาอะไร แต่ตัวอย่างเช่นคู่มือ PHP ให้คำอธิบายที่ดี
URLEncode
ส่งคืนสตริงที่อักขระที่ไม่ใช่ตัวเลขและตัวอักษรทั้งหมดยกเว้น -_ ถูกแทนที่ด้วยเครื่องหมายเปอร์เซ็นต์ (%) ตามด้วยเลขฐานสิบหกสองหลักและช่องว่างที่เข้ารหัสเป็นเครื่องหมายบวก (+) มีการเข้ารหัสแบบเดียวกับที่เข้ารหัสข้อมูลที่โพสต์จากฟอร์ม WWW ซึ่งเป็นวิธีเดียวกับในประเภทสื่อที่เข้ารหัส application / x-www-form-urlencoded สิ่งนี้แตกต่างจากการเข้ารหัส» RFC 1738 (ดู rawurlencode ()) เนื่องจากเหตุผลทางประวัติศาสตร์ช่องว่างจะถูกเข้ารหัสเป็นเครื่องหมายบวก (+)