เข้ารหัส / ถอดรหัสเอนทิตี HTML
Escape ข้อความสำหรับ HTML หรือถอดเอนทิตีแบบ & กลับเป็นอักขระ
เกี่ยวกับเครื่องมือนี้
Escape ข้อความเพื่อใส่ใน HTML อย่างปลอดภัย — & กลายเป็น &, < กลายเป็น < — หรือถอดข้อความที่เต็มไปด้วยเอนทิตีกลับเป็นอักขระที่อ่านได้ ครอบคลุมทั้งเอนทิตีแบบมีชื่อ (→) แบบเลขฐานสิบ (©) และแบบเลขฐานสิบหก (©)
การเข้ารหัสมีสองระดับ: เฉพาะห้าอักขระสำคัญที่ทำลายโครงสร้าง HTML (& < > " ') ซึ่งเพียงพอต่อความถูกต้อง หรือทุกอักขระที่ไม่ใช่ ASCII ซึ่งมีประโยชน์เมื่อมีเครื่องมือบางตัวระหว่างคุณกับหน้าเว็บทำ UTF-8 เพี้ยน ส่วนโหมดตัวเลขล้วนจะข้ามเอนทิตีแบบมีชื่อ เพื่อความเข้ากันได้สูงสุดกับตัวแยกวิเคราะห์ XML ที่เข้มงวด ซึ่งรับประกันเพียงห้าตัวที่นิยามไว้ล่วงหน้า
ตัวถอดรหัสคือครึ่งที่ใช้ประจำวัน: วางชิ้นส่วนที่ดึงมาจากเว็บหรือคำตอบ API ที่เต็มไปด้วย ' แล้วได้ข้อความสะอาดกลับมา ชื่อเอนทิตีที่ไม่รู้จักจะถูกปล่อยผ่านโดยไม่แตะต้อง แทนที่จะเดา
คำถามที่พบบ่อย
- อักขระใดบ้างที่ต้อง escape ใน HTML?
- ในเนื้อหาข้อความ: & และ < ในค่าแอตทริบิวต์: บวกอัญประกาศที่ใช้คร่อมแอตทริบิวต์นั้น (" หรือ ') การ escape > เป็นธรรมเนียมแต่ไม่ได้บังคับ ส่วนที่เหลือปรากฏตามตัวอักษรได้ในเอกสาร UTF-8
- การเข้ารหัสเอนทิตีป้องกัน XSS ได้ไหม?
- การ escape ห้าอักขระเชิงโครงสร้างคือหัวใจของการเข้ารหัสผลลัพธ์ในบริบท HTML ใช่ — แต่เฉพาะบริบทข้อความและแอตทริบิวต์ของ HTML เท่านั้น URL, สตริง JavaScript และ CSS ต้องการการเข้ารหัสเฉพาะบริบทของตนเอง การ escape เอนทิตีอย่างเดียวไม่ได้ทำให้การแทรกโค้ดตามอำเภอใจในที่เหล่านั้นปลอดภัย
- ควรใช้เอนทิตีแบบมีชื่อหรือแบบตัวเลข?
- การอ้างอิงแบบตัวเลข (é) ใช้ได้กับตัวแยกวิเคราะห์ HTML และ XML ทุกตัว เอนทิตีแบบมีชื่ออ่านง่ายกว่า แต่ XML นิยามไว้ล่วงหน้าเพียงห้าตัว é จึงทำให้สายงาน XML/XHTML ที่เข้มงวดพัง หากลังเล ให้เลือกแบบตัวเลข
- ทำไมข้อมูลของฉันมี &#39; (เข้ารหัสซ้อน)?
- มีสองชั้นที่ต่างก็เข้ารหัสอย่างละครั้ง: & ของการเข้ารหัสรอบแรกถูก escape อีกทีในรอบที่สอง ให้ถอดรหัสสองครั้งที่นี่เพื่อกู้ข้อความคืน แล้วไปหาและแก้ชั้นที่ไม่ควรเข้ารหัส