มีสามฟังก์ชั่นในจาวาสคริปต์ที่สามารถเข้ารหัสสตริง ได้แก่ : Escape, Excodeuri, Encodeuri และ Encodeuricomponent ฟังก์ชั่นการถอดรหัสสามฟังก์ชั่นที่สอดคล้องกัน: Unsescape, Decodeuri และ Decodeuricomponent
นี่คือการแนะนำสั้น ๆ เกี่ยวกับความแตกต่างของพวกเขา:
1 ฟังก์ชั่น Escape ()
คำจำกัดความและการใช้งาน
ฟังก์ชั่น Escape () เข้ารหัสสตริงเพื่อให้สตริงสามารถอ่านได้ในคอมพิวเตอร์ทุกเครื่อง
ไวยากรณ์
หลบหนี (สตริง)
คำอธิบายพารามิเตอร์
จำเป็นต้องใช้สตริง สตริงที่จะหลบหนีหรือเข้ารหัส
ค่าส่งคืน
สำเนาของสตริงที่เข้ารหัส ตัวละครเหล่านี้บางตัวจะถูกแทนที่ด้วยลำดับ hexadecimal Escape
อธิบาย
วิธีนี้ไม่ได้เข้ารหัสตัวอักษรและตัวเลข ASCII และไม่มีเครื่องหมายวรรคตอน ASCII ต่อไปนี้: - _ - - อักขระอื่น ๆ ทั้งหมดจะถูกแทนที่ด้วยลำดับที่หลบหนี
2 ฟังก์ชัน ENCODEURI ()
คำจำกัดความและการใช้งาน
ฟังก์ชั่น encodeuri () สามารถเข้ารหัสสตริงเป็น uris
ไวยากรณ์
ENCODEURI (ท่อปัสสาวะ)
คำอธิบายพารามิเตอร์
ต้องใช้ท่อปัสสาวะ สตริงที่มี URI หรือข้อความอื่น ๆ ที่จะเข้ารหัส
ค่าส่งคืน
สำเนาของท่อปัสสาวะซึ่งบางส่วนถูกแทนที่ด้วยลำดับการหลบหนีแบบหกสิบ
อธิบาย
วิธีนี้ไม่ได้เข้ารหัสตัวอักษรและตัวเลข ASCII และไม่เข้ารหัสเครื่องหมายวรรคตอน ASCII เหล่านี้: - _ - -
วัตถุประสงค์ของวิธีนี้คือการเข้ารหัส URI อย่างเต็มที่ดังนั้นฟังก์ชัน ENCODEURI () จะไม่หลบหนีเครื่องหมายวรรคตอน ASCII ต่อไปนี้ด้วยความหมายพิเศษใน URI:;/?:@& =+$,#,#,
3 ฟังก์ชัน ENCODEURICOMPONENT ()
คำจำกัดความและการใช้งาน
ฟังก์ชั่น ENCODEURICOMPONENT () สามารถเข้ารหัสสตริงเป็นส่วนประกอบ URI
ไวยากรณ์
encodeuricomponent (ท่อปัสสาวะ)
คำอธิบายพารามิเตอร์
ต้องใช้ท่อปัสสาวะ สตริงที่มีส่วนประกอบ URI หรือข้อความอื่น ๆ ที่จะเข้ารหัส
ค่าส่งคืน
สำเนาของท่อปัสสาวะซึ่งบางส่วนถูกแทนที่ด้วยลำดับการหลบหนีแบบหกสิบ
อธิบาย
วิธีนี้ไม่ได้เข้ารหัสตัวอักษรและตัวเลข ASCII และไม่เข้ารหัสเครื่องหมายวรรคตอน ASCII เหล่านี้: - _ - -
อักขระอื่น ๆ (เช่น:;/?:@& =+$,# เครื่องหมายวรรคตอนเหล่านี้ใช้ในการแยกส่วนประกอบ URI) จะถูกแทนที่ด้วยลำดับ hexadecimal Escape อย่างน้อยหนึ่งรายการ
เคล็ดลับและความคิดเห็น
เคล็ดลับ: หมายเหตุความแตกต่างระหว่างฟังก์ชัน encodeuricomponent () และฟังก์ชัน encodeuri () อดีตสันนิษฐานว่าพารามิเตอร์ของมันเป็นส่วนหนึ่งของ URI (เช่นโปรโตคอล, ชื่อโฮสต์, เส้นทางหรือสตริงการสืบค้น) ดังนั้นฟังก์ชั่น encodeuricomponent () จะหลบหนีเครื่องหมายวรรคตอนที่ใช้ในการแยกแต่ละส่วนของ URI
4 สรุป:
ผ่านการวิเคราะห์ฟังก์ชั่นทั้งสามเราสามารถรู้ได้ว่า Escape () หนีออกจากสตริงที่ผ่านทั้งหมดยกเว้นตัวอักษร ASCII ตัวเลขและสัญลักษณ์เฉพาะ ดังนั้นหากคุณต้องการเข้ารหัส URL มันจะเป็นการดีที่สุดที่จะไม่ใช้วิธีนี้ ENCODEURI () ใช้เพื่อเข้ารหัส URI ทั้งหมดเนื่องจากไม่มีอักขระที่ถูกกฎหมายใน URI จะถูกเข้ารหัสและแปลง วิธี encodeuricomponent ควรใช้กันมากที่สุดเมื่อเข้ารหัส Uricomponent เดียว (หมายถึงพารามิเตอร์คำขอ) มันสามารถหลบหนีอักขระจีนและอักขระพิเศษในพารามิเตอร์โดยไม่ส่งผลกระทบต่อ URL ทั้งหมด
5 ตัวอย่าง:
1 หลบหนี ()
<script type = "text/javascript"> document.write (Escape ("http://www.w3school.com.cn/") + "<br/>") เอกสารเขียน (Escape ("?! = ()#%&")เอาท์พุท:
http%3a // www.w3school.com.cn%3f%21%3d%28%29%23%25%26
2 ENCODEURI ()
<script type = "text/javaScript"> document.write (encodeuri ("http://www.w3school.com.cn/")+ "<br />") First/")) document.write (encodeuri (",/?:@& =+$#")) </script>เอาท์พุท:
http://www.w3school.com.cn/http://www.w3school.com.cn/my%20first/,/?:@&=+$##
URL ทั้งหมดถูกเข้ารหัสและตัวระบุเฉพาะของ URL ไม่ได้ถูกแปลงรหัส
3 encodeuricomponent ()
ตัวอย่างที่ 1:
<script type = "text/javascript"> document.write (encodeuricomponent ("http://www.w3school.com.cn/")) เอกสารเขียน ("<br />") /> ") document.write (encodeuricomponent (",/?:@& =+$#")) </script>เอาท์พุท:
http%3a%2f%2fwww.w3school.com.cnhttp%3a%2f%2fwww.w3school.com.cn%2FP%201%2F%2C%2F%3F%3A%40%26%
ตัวอย่างที่ 2:
<script language = "javascript"> document.write ('<a href = "http://passport.baidu.com/?logout&aid=7&u='+Encodeuricomponent (" rel = "external nofollow" http://cang.baidu.com/bruce4เข้ารหัสพารามิเตอร์ใน URL เนื่องจากพารามิเตอร์เป็น URL หากไม่ได้เข้ารหัสมันจะส่งผลกระทบต่อการกระโดดของ URL ทั้งหมด