ทำอะไรได้
HTML entity คือรหัสที่ใช้แทนอักขระ เช่น < แทน < และ é แทน é เครื่องมือนี้ escape ข้อความเป็น entity เพื่อให้แสดงในหน้าเว็บได้อย่างปลอดภัย และถอดรหัส entity กลับเป็นข้อความธรรมดา เช่น เมื่อคุณคัดลอกมาร์กอัปออกมาจาก CMS หรือเทมเพลตอีเมล
การเข้ารหัสใช้รายการ named reference ของ HTML5 แบบเต็มกว่า 2,000 รายการ และการถอดรหัสเข้าใจ reference แบบชื่อ แบบเลขฐานสิบ (©) และแบบเลขฐานสิบหก (©) เหมือนเบราว์เซอร์ทุกประการ
วิธีใช้งาน
- วางข้อความหรือ HTML ลงในช่อง อินพุต อัปโหลดไฟล์ หรือคลิก ตัวอย่าง
- เลือก เข้ารหัส หรือ ถอดรหัส
- เมื่อเข้ารหัส ให้เลือกขอบเขตการเข้ารหัส:
- เฉพาะ & < > ” ’: ขั้นต่ำที่จำเป็นสำหรับใส่ข้อความลงใน HTML หรือ attribute
- รวมอักขระที่ไม่ใช่ ASCII แบบชื่อ: แปลงอักขระอย่าง é, © และ — เป็น entity แบบชื่อด้วย และตัวที่ไม่มีชื่อเป็น reference แบบตัวเลข
- รวมอักขระที่ไม่ใช่ ASCII แบบตัวเลข: เหมือนกัน แต่เป็นแบบตัวเลขเสมอ (
é) ซึ่งเป็น XML ที่ถูกต้องด้วย - ทุกตัวที่มีชื่อ: เข้ารหัสแม้แต่เครื่องหมายวรรคตอนอย่าง
.และ/มีประโยชน์เมื่อระบบตัดอักขระเหล่านั้นทิ้ง
- คัดลอกหรือดาวน์โหลดผลลัพธ์ ใช้เป็นอินพุต ช่วยให้ถอดรหัสกลับเพื่อตรวจการแปลงไปกลับได้
ตัวอย่าง
<p>Café & "crème brûlée"</p>
เมื่อเข้ารหัสเฉพาะอักขระพิเศษ จะกลายเป็น
<p>Café & "crème brûlée"</p>
และเมื่อใช้ entity แบบชื่อสำหรับอักขระที่ไม่ใช่ ASCII จะกลายเป็น
<p>Café & "crème brûlée"</p>
การใช้งานทั่วไป
แสดงโค้ดตัวอย่างบนบล็อกโดยไม่ให้เบราว์เซอร์เรนเดอร์ ใส่ข้อความของผู้ใช้ลงในอีเมล HTML แก้ข้อความที่ถูก escape ซ้ำสองครั้งอย่าง &amp; (ถอดรหัสหนึ่งครั้ง) หรือทำให้ไฟล์ปลอดภัยสำหรับระบบที่รับเฉพาะ ASCII
คำถามที่พบบ่อย
› อักขระใดบ้างที่ต้อง escape ใน HTML?
ในข้อความ ให้ escape & และ < ภายในค่า attribute ให้ escape เครื่องหมายคำพูดที่ครอบค่านั้นด้วย การ escape & < > " และ ' ทุกที่ ซึ่งเป็นค่าเริ่มต้นของที่นี่ ปลอดภัยเสมอ
› ควรใช้ entity แบบชื่อหรือแบบตัวเลข?
ใช้ได้ทั้งคู่ในทุกเบราว์เซอร์สมัยใหม่ entity แบบชื่ออย่าง é อ่านง่ายกว่า ส่วนแบบตัวเลขอย่าง é ใช้ได้ใน XML และใน parser รุ่นเก่าที่รู้จักชื่อเพียงไม่กี่ชื่อด้วย หากหน้าเว็บเป็น UTF-8 โดยปกติไม่จำเป็นต้องเข้ารหัสอักขระที่ไม่ใช่ ASCII เลย
› การถอดรหัสรองรับ entity ที่ไม่มีอัฒภาคหรือไม่?
รองรับ ทำงานตามข้อกำหนดของ HTML รูปแบบเก่าอย่าง © ที่ไม่มีอัฒภาคจึงถูกถอดรหัสแบบเดียวกับเบราว์เซอร์ ชื่อที่ไม่รู้จักอย่าง &foo; จะคงไว้ตามเดิม
› การ escape เพียงพอสำหรับป้องกัน XSS หรือไม่?
การ escape เป็นการป้องกันที่ถูกต้องสำหรับข้อความที่อยู่ภายใน element ของ HTML และ attribute ที่มีเครื่องหมายคำพูด แต่ไม่ได้ทำให้อินพุตที่ไม่น่าเชื่อถือปลอดภัยภายในบล็อก script, บล็อก style, attribute ของ event handler หรือ URL ซึ่งต้องเข้ารหัสตามบริบทเฉพาะ