DevToolPal
ไทย

เข้ารหัสและถอดรหัส HTML Entity

Escape ข้อความเป็น HTML entity อย่าง < และ é หรือถอดรหัส entity กลับเป็นข้อความธรรมดา

ทำงานในเครื่อง ไม่มีการอัปโหลด

ตัวเลือก

โหมด

อินพุต

0 ตัวอักษร · 0 B

เอาต์พุต

0 ตัวอักษร · 0 B

ทำอะไรได้

HTML entity คือรหัสที่ใช้แทนอักขระ เช่น &lt; แทน < และ &eacute; แทน é เครื่องมือนี้ escape ข้อความเป็น entity เพื่อให้แสดงในหน้าเว็บได้อย่างปลอดภัย และถอดรหัส entity กลับเป็นข้อความธรรมดา เช่น เมื่อคุณคัดลอกมาร์กอัปออกมาจาก CMS หรือเทมเพลตอีเมล

การเข้ารหัสใช้รายการ named reference ของ HTML5 แบบเต็มกว่า 2,000 รายการ และการถอดรหัสเข้าใจ reference แบบชื่อ แบบเลขฐานสิบ (&#169;) และแบบเลขฐานสิบหก (&#xA9;) เหมือนเบราว์เซอร์ทุกประการ

วิธีใช้งาน

  1. วางข้อความหรือ HTML ลงในช่อง อินพุต อัปโหลดไฟล์ หรือคลิก ตัวอย่าง
  2. เลือก เข้ารหัส หรือ ถอดรหัส
  3. เมื่อเข้ารหัส ให้เลือกขอบเขตการเข้ารหัส:
    • เฉพาะ & < > ” ’: ขั้นต่ำที่จำเป็นสำหรับใส่ข้อความลงใน HTML หรือ attribute
    • รวมอักขระที่ไม่ใช่ ASCII แบบชื่อ: แปลงอักขระอย่าง é, © และ — เป็น entity แบบชื่อด้วย และตัวที่ไม่มีชื่อเป็น reference แบบตัวเลข
    • รวมอักขระที่ไม่ใช่ ASCII แบบตัวเลข: เหมือนกัน แต่เป็นแบบตัวเลขเสมอ (&#xe9;) ซึ่งเป็น XML ที่ถูกต้องด้วย
    • ทุกตัวที่มีชื่อ: เข้ารหัสแม้แต่เครื่องหมายวรรคตอนอย่าง . และ / มีประโยชน์เมื่อระบบตัดอักขระเหล่านั้นทิ้ง
  4. คัดลอกหรือดาวน์โหลดผลลัพธ์ ใช้เป็นอินพุต ช่วยให้ถอดรหัสกลับเพื่อตรวจการแปลงไปกลับได้

ตัวอย่าง

<p>Café & "crème brûlée"</p>

เมื่อเข้ารหัสเฉพาะอักขระพิเศษ จะกลายเป็น

&lt;p&gt;Café &amp; &quot;crème brûlée&quot;&lt;/p&gt;

และเมื่อใช้ entity แบบชื่อสำหรับอักขระที่ไม่ใช่ ASCII จะกลายเป็น

&lt;p&gt;Caf&eacute; &amp; &quot;cr&egrave;me br&ucirc;l&eacute;e&quot;&lt;/p&gt;

การใช้งานทั่วไป

แสดงโค้ดตัวอย่างบนบล็อกโดยไม่ให้เบราว์เซอร์เรนเดอร์ ใส่ข้อความของผู้ใช้ลงในอีเมล HTML แก้ข้อความที่ถูก escape ซ้ำสองครั้งอย่าง &amp;amp; (ถอดรหัสหนึ่งครั้ง) หรือทำให้ไฟล์ปลอดภัยสำหรับระบบที่รับเฉพาะ ASCII

คำถามที่พบบ่อย

› อักขระใดบ้างที่ต้อง escape ใน HTML?

ในข้อความ ให้ escape & และ < ภายในค่า attribute ให้ escape เครื่องหมายคำพูดที่ครอบค่านั้นด้วย การ escape & < > " และ ' ทุกที่ ซึ่งเป็นค่าเริ่มต้นของที่นี่ ปลอดภัยเสมอ

› ควรใช้ entity แบบชื่อหรือแบบตัวเลข?

ใช้ได้ทั้งคู่ในทุกเบราว์เซอร์สมัยใหม่ entity แบบชื่ออย่าง &eacute; อ่านง่ายกว่า ส่วนแบบตัวเลขอย่าง &#xe9; ใช้ได้ใน XML และใน parser รุ่นเก่าที่รู้จักชื่อเพียงไม่กี่ชื่อด้วย หากหน้าเว็บเป็น UTF-8 โดยปกติไม่จำเป็นต้องเข้ารหัสอักขระที่ไม่ใช่ ASCII เลย

› การถอดรหัสรองรับ entity ที่ไม่มีอัฒภาคหรือไม่?

รองรับ ทำงานตามข้อกำหนดของ HTML รูปแบบเก่าอย่าง &copy ที่ไม่มีอัฒภาคจึงถูกถอดรหัสแบบเดียวกับเบราว์เซอร์ ชื่อที่ไม่รู้จักอย่าง &foo; จะคงไว้ตามเดิม

› การ escape เพียงพอสำหรับป้องกัน XSS หรือไม่?

การ escape เป็นการป้องกันที่ถูกต้องสำหรับข้อความที่อยู่ภายใน element ของ HTML และ attribute ที่มีเครื่องหมายคำพูด แต่ไม่ได้ทำให้อินพุตที่ไม่น่าเชื่อถือปลอดภัยภายในบล็อก script, บล็อก style, attribute ของ event handler หรือ URL ซึ่งต้องเข้ารหัสตามบริบทเฉพาะ