เครื่องมือเข้ารหัสและถอดรหัส HTML Entity
Escape อักขระที่ HTML ตีความว่าเป็นมาร์กอัป และเลือก escape อักขระที่ไม่ใช่ ASCII ทุกตัวด้วยก็ได้ หรือแปลง entity อย่าง é และ — กลับเป็นข้อความธรรมดา ทั้งสองทิศทางทำงานในเบราว์เซอร์ของคุณ และข้อมูลที่ถอดรหัสแล้วจะไม่ถูกแสดงผลเป็น HTML ที่ทำงานได้จริง
0 ตัวอักษร · 0 คำ · 0 บรรทัด
0 ตัวอักษร · 0 คำ · 0 บรรทัด
ทำงานทั้งหมดภายในแท็บเบราว์เซอร์นี้ ข้อความของคุณจะไม่ถูกอัปโหลดหรือจัดเก็บไว้
อักขระที่ใช้บ่อยและ entity ของอักขระนั้น
รูปแบบชื่อ ฐานสิบ และฐานสิบหก ถอดรหัสแล้วได้อักขระเดียวกันทั้งหมด ตัวเข้ารหัสรู้จัก named entity ที่ใช้บ่อย 216 รายการ ส่วนตัวถอดรหัสเข้าใจ named reference ทุกตัวในมาตรฐาน HTML
| อักขระ | แบบชื่อ | ฐานสิบ | ฐานสิบหก |
|---|---|---|---|
& | & | & | & |
< | < | < | < |
> | > | > | > |
" | " | " | " |
' | ' | ' | ' |
(ช่องว่างไม่ตัดบรรทัด) | |   |   |
© | © | © | © |
® | ® | ® | ® |
™ | ™ | ™ | ™ |
€ | € | € | € |
£ | £ | £ | £ |
¥ | ¥ | ¥ | ¥ |
— | — | — | — |
– | – | – | – |
… | … | … | … |
« | « | « | « |
» | » | » | » |
° | ° | ° | ° |
× | × | × | × |
÷ | ÷ | ÷ | ÷ |
é | é | é | é |
π | π | π | π |
→ | → | → | → |
😀 | — | 😀 | 😀 |
จาก 252 entity ใน HTML 4 สู่ 2,231 entity ใน HTML5
character reference คือวิธีเขียนอักขระโดยใช้เพียง ASCII การอ้างอิงแบบตัวเลขใช้ได้กับทุกจุดรหัส Unicode ทั้งแบบทศนิยม (é) และเลขฐานสิบหก (é) ส่วนการอ้างอิงแบบชื่อจำง่ายกว่า โดย HTML 4 กำหนดไว้ 252 ชื่อ ครอบคลุมตัวอักษร Latin-1 เช่น é ตัวอักษรกรีก สัญลักษณ์ทางคณิตศาสตร์ และเครื่องหมายวรรคตอนอย่าง — และ … น่าแปลกที่ ' ไม่ได้อยู่ในรายการนี้ เพราะมาจาก XML และเพิ่งใช้ได้ใน HTML เมื่อมี HTML5
HTML5 ขยายรายการเป็น 2,231 ชื่อ โดยรวมชุดเอนทิตีของ MathML เข้ามาด้วย ทำให้ชื่ออย่าง ✓, ★ และ ≂̸ ใช้ได้ในเบราว์เซอร์ปัจจุบันทุกตัว จำนวนนี้นับรวมรูปแบบเก่าที่ไม่มีเครื่องหมายอัฒภาคปิดท้าย เช่น & และ © ซึ่งตัวแยกวิเคราะห์ยังรองรับเพื่อความเข้ากันได้ แต่ไม่ควรเขียนแบบนี้ ตัวเข้ารหัสในหน้านี้สร้างชื่อ HTML 4 ที่รองรับกันแพร่หลายร่วมกับ ' และใช้การอ้างอิงแบบตัวเลขสำหรับอักขระอื่นทั้งหมด ส่วนตัวถอดรหัสส่งข้อความให้ตัวแยกวิเคราะห์ของเบราว์เซอร์เอง จึงเข้าใจครบทั้ง 2,231 ชื่อ
อักขระใดต้อง escape และเมื่อใดที่การ escape อย่างเดียวไม่พอ
Only & < > " ' เป็นการตั้งค่าสำหรับงานทั่วไป โดยจะ escape อักขระห้าตัวที่อาจทำให้โหนดข้อความหรือแอตทริบิวต์ที่อยู่ในเครื่องหมายคำพูดสิ้นสุดลง เพียงพอสำหรับการแสดงตัวอย่างโค้ดบนหน้าเว็บหรือการใส่ข้อความของผู้ใช้ลงใน HTML อย่างปลอดภัย Also every non-ASCII character จะแปลง é, € และอีโมจิเป็นการอ้างอิงด้วย สำหรับช่องทางที่ส่ง UTF-8 ไม่ได้ เช่น เทมเพลตอีเมลรุ่นเก่าบางแบบหรือระบบที่ทำให้การเข้ารหัสเพี้ยน Named, Decimal และ Hex เปลี่ยนเฉพาะรูปแบบการเขียนการอ้างอิง ทั้งสามแบบถอดรหัสได้เป็นอักขระเดียวกัน หน้าเว็บที่บันทึกเป็น UTF-8 ไม่จำเป็นต้องใช้เอนทิตีกับตัวอักษรที่มีเครื่องหมายกำกับ
การ escape ป้องกันได้เฉพาะบริบท HTML เท่านั้น ข้อความที่ใส่ในบล็อก script, ตัวจัดการเหตุการณ์แบบอินไลน์อย่าง onclick, แอตทริบิวต์ style หรือ href ที่อาจขึ้นต้นด้วย javascript: ต้องจัดการต่างออกไป และการเข้ารหัสเอนทิตีเพียงอย่างเดียวไม่สามารถป้องกัน cross-site scripting ในกรณีเหล่านั้นได้ เฟรมเวิร์กอย่าง React escape ข้อความให้โดยค่าเริ่มต้น ดังนั้นข้อผิดพลาดที่พบบ่อยในแอปสมัยใหม่คือการ escape ซ้ำสองครั้ง ทำให้ผู้ใช้เห็น & ในที่ที่ควรเป็นเครื่องหมายแอมเปอร์แซนด์ หากต้องการลบแท็กทั้งหมด ให้แปลงมาร์กอัปด้วย HTML เป็น TXT และหากต้องการ escape ภายใน URL ให้ใช้ เข้ารหัสและถอดรหัส URL
คำถามที่พบบ่อย
- อักขระใดบ้างที่ต้อง escape ใน HTML
- ในข้อความ จำเป็นต้อง escape & และ < ส่วน > escape ตามธรรมเนียม ภายในค่าแอตทริบิวต์ ให้ escape เครื่องหมายคำพูดที่ใช้ครอบค่าด้วย การ escape ทั้งห้าตัวครอบคลุมทั้งสองกรณี
- ต่างจากช่องว่างปกติอย่างไร
คือช่องว่างที่ไม่ตัดบรรทัด (no-break space) U+00A0 ดูเหมือนช่องว่างทั่วไป แต่ป้องกันการขึ้นบรรทัดใหม่ตรงจุดนั้น และจะไม่ถูกยุบรวมเมื่อมีหลายตัวติดกัน ต่างจากช่องว่างปกติใน HTML- ทำไมหน้าเว็บแสดง & แทนเครื่องหมายแอมเปอร์แซนด์
- ข้อความถูก escape สองครั้ง ครั้งหนึ่งในข้อมูลของคุณ และอีกครั้งโดยเทมเพลตหรือเฟรมเวิร์ก ควรเก็บข้อความดิบไว้ แล้วให้เพียงชั้นเดียว ซึ่งมักเป็นเทมเพลต เป็นผู้ escape ตอนแสดงผล
- ถอดรหัส HTML จากแหล่งที่ไม่น่าเชื่อถือด้วยเครื่องมือนี้ปลอดภัยหรือไม่
- ได้ ตัวถอดรหัสแยกวิเคราะห์อินพุตเป็นเนื้อหาข้อความธรรมดา จึงไม่สร้างแท็ก สคริปต์ไม่ทำงาน และรูปภาพไม่โหลด มีเพียงการอ้างอิงเอนทิตีเท่านั้นที่ถูกแปลงเป็นอักขระ
- entity แบบชื่อหรือแบบตัวเลข แบบใดดีกว่ากัน
- แบบชื่ออ่านง่ายกว่า ส่วนแบบตัวเลขใช้ได้กับทุกอักขระและทุกตัวแยกวิเคราะห์ XML ใน XML ที่ไม่มี DTD มีเพียง
&,<,>,"และ'ที่กำหนดไว้ล่วงหน้า