ตัวแปลงเอนทิตี HTML

5 จาก 2 การให้คะแนน

ตัวแปลงเอนทิตี HTML เป็นเครื่องมือฟรีสำหรับแปลงระหว่างการอ้างอิงอักขระ HTML กับอักขระที่ถอดรหัสแล้ว เพื่อนำไปใช้ในหน้าเว็บ ระบบจัดการเนื้อหา และรูปแบบข้อความอื่นๆ

เอนทิตี HTML คืออะไร และมีไว้ทำไม?

เอนทิตี HTML ใช้ข้อความแทนอักขระ เพื่อให้ HTML แยกอักขระเหล่านั้นออกจากมาร์กอัปของตัวเองได้ โดยทั่วไป การอ้างอิงอักขระ HTML จะขึ้นต้นด้วยเครื่องหมายแอมเพอร์แซนด์และลงท้ายด้วยเครื่องหมายอัฒภาค อาจเป็นการอ้างอิงด้วยชื่อ เช่น & ซึ่งแทนเครื่องหมายแอมเพอร์แซนด์ หรือการอ้างอิงด้วยตัวเลข เช่น £ ซึ่งแทนสัญลักษณ์ปอนด์

เอนทิตีมีประโยชน์เมื่ออักขระนั้นมีความหมายพิเศษใน HTML ตัวอย่างเช่น เครื่องหมายน้อยกว่าแบบตรงตัวอาจถูกเข้าใจผิดว่าเป็นจุดเริ่มต้นของแท็ก จึงเขียนเป็น < ได้ การอ้างอิงอักขระยังช่วยให้ระบบแสดงอักขระบางตัวใน HTML หรือมาร์กอัปที่เข้ากันได้ โดยไม่สับสนกับมาร์กอัปหรือไวยากรณ์ควบคุม

การเข้ารหัสเอนทิตีไม่ใช่การเข้ารหัสลับและไม่ช่วยปกปิดข้อมูล ทุกคนสามารถอ่านหรือถอดรหัสการอ้างอิงเอนทิตีได้ จึงไม่ควรใช้ซ่อนรหัสผ่าน ข้อมูลส่วนบุคคล หรือเนื้อหาที่เป็นความลับ

ใช้ตัวแปลงเอนทิตี HTML อย่างไร?

ป้อนข้อความในช่อง Encode หรือ Decode ตามต้องการ แล้วดูผลลัพธ์ในช่อง เข้ารหัสเอนทิตี HTML หรือ ถอดรหัสเอนทิตี HTML ใช้ผลลัพธ์ที่เข้ารหัสแล้วเมื่อต้องใส่ข้อความในบริบทข้อความหรือแอตทริบิวต์ HTML ที่เหมาะสม ส่วนผลลัพธ์ที่ถอดรหัสแล้วใช้เมื่อต้องการอักขระที่เอนทิตีเดิมใช้แทน

การแปลงจะทำงานบนเซิร์ฟเวอร์ ข้อมูลที่ป้อนจะถูกส่งไปยังเซิร์ฟเวอร์ผ่าน HTTPS และจะไม่ถูกจัดเก็บ

ก่อนแปลง ให้ตรวจสอบก่อนว่าต้องใช้เอนทิตี HTML จริงหรือไม่ โดยทั่วไป ค่าภายในสตริงคำค้นหาต้องใช้การเข้ารหัสแบบเปอร์เซ็นต์ของ URL ส่วนชื่อโดเมนสากลใช้ Punycode ตัวถอดรหัส URL และตัวแปลง IDN Punycode ออกแบบมาสำหรับรูปแบบทั้งสองประเภทนี้ตามลำดับ

ผลลัพธ์ที่เข้ารหัสหรือถอดรหัสแล้วมีหน้าตาอย่างไร?

ผลลัพธ์ที่ถอดรหัสแล้วจะแทนการอ้างอิงเอนทิตีที่ระบบรู้จักด้วยอักขระจริง ส่วนรูปแบบที่เข้ารหัสแล้วจะแทนอักขระด้วยไวยากรณ์เอนทิตี

ข้อมูลนำเข้า: <p>Tea & cake</p>

ผลลัพธ์ที่ถอดรหัสแล้ว: <p>Tea & cake</p>

วงเล็บมุมในผลลัพธ์ที่ถอดรหัสแล้วเป็นอักขระที่อาจกลายเป็นมาร์กอัป HTML หากแทรกลงในหน้าเว็บในรูปแบบ HTML การถอดรหัสไม่ได้กรองเนื้อหา ลบสคริปต์ หรือทำให้ HTML จากแหล่งที่ไม่น่าเชื่อถือปลอดภัยขึ้น ต้องจัดการเนื้อหาที่ถอดรหัสแล้วให้เหมาะกับบริบทที่จะนำไปใช้

ตัวอย่างการใช้งานและข้อมูลนำเข้าที่อาจมีปัญหา

เอนทิตีแบบมีชื่อและการอ้างอิงอักขระด้วยตัวเลขสามารถแทนอักขระเดียวกันได้หลายรูปแบบ ตัวอย่างเช่น &amp; เป็นการอ้างอิงแบบมีชื่อสำหรับเครื่องหมายแอมเพอร์แซนด์ ขณะที่ &#38; เป็นการอ้างอิงด้วยเลขฐานสิบ และ &#x26; เป็นรูปแบบเลขฐานสิบหก

  • ช่องว่างทั่วไปและตัวเลขที่เขียนตรงๆ ไม่ใช่การอ้างอิงเอนทิตี และโดยปกติจะคงเป็นข้อความธรรมดา
  • เครื่องหมายวรรคตอนจะเปลี่ยนเฉพาะเมื่อปรากฏในรูปการอ้างอิงเอนทิตีที่ระบบรู้จัก หรือเมื่อมีการเข้ารหัสโดยตั้งใจ
  • ตัวอักษรที่มีเครื่องหมายกำกับ ระบบอักษรที่ไม่ใช่ละติน และอีโมจิ สามารถแทนด้วยการอ้างอิงอักขระแบบตัวเลข ซึ่งระบุจุดรหัส Unicode โดยไม่ขึ้นกับการเข้ารหัสของซอร์ส HTML การแสดงผลอย่างถูกต้องขึ้นอยู่กับการรองรับของแบบอักษร ส่วนการเข้ารหัสอักขระมีผลเมื่อนำผลลัพธ์ที่ถอดรหัสแล้วไปจัดเก็บหรือส่งต่อ

เวลาเขียนเอนทิตี ควรใส่เครื่องหมายอัฒภาคปิดท้ายเสมอ เบราว์เซอร์อาจยอมรับการอ้างอิงบางแบบที่ไม่มีอัฒภาคในบางบริบท แต่รูปแบบย่อนี้อาจกำกวมและทำงานข้ามตัวแยกวิเคราะห์ได้ไม่สม่ำเสมอ

ในงานจริงพบเอนทิตี HTML ที่ไหนบ้าง?

มักพบเอนทิตี HTML ในซอร์ส HTML ระบบจัดการเนื้อหา โปรแกรมแก้ไข Rich Text และอีเมล HTML ตัวอย่างเช่น มุมมองโค้ดของ WordPress อาจมี &nbsp; สำหรับช่องว่างแบบไม่ตัดบรรทัด หรือ &amp; ในตำแหน่งที่ต้องคงเครื่องหมายแอมเพอร์แซนด์ไว้ในมาร์กอัป

เอนทิตียังอาจอยู่ภายในข้อมูลที่ส่งผ่านรูปแบบอื่น ทำให้เกิดการเข้ารหัสหลายชั้น ซึ่งต้องจัดการตามลำดับที่ถูกต้อง

  • เพย์โหลด JSON อาจมีส่วนย่อย HTML ซึ่งข้อความภายในมีเอนทิตีอยู่ การ Escape สำหรับ JSON และการถอดรหัสเอนทิตี HTML เป็นคนละขั้นตอนกัน
  • สตริงคำค้นหาอาจมี HTML ที่เข้ารหัสแบบเปอร์เซ็นต์ ให้ถอดรหัสชั้น URL ก่อน แล้วจึงตรวจสอบว่าข้อความที่ได้ยังมีเอนทิตีอยู่หรือไม่
  • Data URI อาจมี HTML หรือข้อความประเภทอื่นที่ใช้เอนทิตี แม้ตัว URI เองอาจใช้การเข้ารหัสแบบเปอร์เซ็นต์หรือ Base64
  • อีเมล HTML อาจเข้ารหัสเครื่องหมายวรรคตอนที่มองเห็นได้ พร้อมกับใช้การเข้ารหัสการถ่ายโอน MIME สำหรับการส่งข้อมูล
  • ชื่อโดเมนสากลอาจปรากฏอยู่ข้าง HTML ที่เข้ารหัสเอนทิตี แต่โดยปกติตัวโดเมนจะใช้ Punycode ไม่ใช่เอนทิตี HTML

ทำไมถอดรหัสเอนทิตี HTML ไม่ได้ หรือได้ข้อความเพี้ยน?

โดยทั่วไป การถอดรหัสล้มเหลวเพราะข้อมูลนำเข้ามีรูปแบบไม่ถูกต้อง ใช้การเข้ารหัสคนละประเภท หรือมีการเข้ารหัสซ้อนกันหลายชั้น ตรวจสอบข้อความต้นฉบับว่ามีการอ้างอิงอักขระ HTML แบบมีชื่อหรือแบบตัวเลขหรือไม่ แทนที่จะแปลงซ้ำไปเรื่อยๆ โดยไม่ตรวจผลลัพธ์

  • รูปแบบการอ้างอิงไม่สมบูรณ์: หากไม่มีเครื่องหมายแอมเพอร์แซนด์ เครื่องหมายตัวเลข หรืออัฒภาค ระบบอาจตรวจไม่พบการอ้างอิง ให้เปรียบเทียบกับรูปแบบอย่าง &amp; หรือ &#38;
  • ข้อมูลนำเข้าถูกเข้ารหัสซ้ำ: ข้อความอย่าง &amp;lt; อาจถอดรหัสครั้งแรกเป็น &lt; และต้องตั้งใจถอดรหัสอีกครั้งจึงจะกลายเป็นเครื่องหมายน้อยกว่า
  • ชุดอักขระไม่ตรงกัน: หากอ่านข้อความด้วยการเข้ารหัสอักขระที่ไม่ถูกต้อง อาจเห็นสัญลักษณ์แทนอักขระหรือตัวอักษรที่มีเครื่องหมายกำกับแสดงผลผิดเพี้ยน
  • ใช้รูปแบบผิด: ข้อความที่มีเครื่องหมายเปอร์เซ็นต์อาจเข้ารหัสแบบ URL ส่วนข้อมูลยาวๆ ที่ประกอบด้วยตัวอักษร ตัวเลข เครื่องหมายบวก เครื่องหมายทับ หรือเครื่องหมายเท่ากับต่อท้าย อาจเป็น Base64
  • หากข้อมูลนำเข้าเป็น Base64 แต่อาจใช้รูปแบบหรือตารางอักขระผิด: Base64 แบบปลอดภัยสำหรับ URL ใช้อักขระต่างจาก Base64 มาตรฐาน และการไม่มีแพดดิงก็อาจทำให้ตัวถอดรหัสบางตัวทำงานไม่ได้ ปัญหาเหล่านี้ไม่เกี่ยวกับไวยากรณ์เอนทิตี HTML และต้องใช้ตัวถอดรหัส Base64

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

ทำไม &nbsp; ถึงดูเหมือนช่องว่างธรรมดา?

&nbsp; แทนช่องว่างแบบไม่ตัดบรรทัด ซึ่งมักดูเหมือนช่องว่างทั่วไป แต่จะป้องกันไม่ให้ขึ้นบรรทัดใหม่ตรงตำแหน่งนั้น โปรแกรมแก้ไขอาจเก็บอักขระนี้ไว้โดยมองไม่เห็น ดังนั้นเมื่อตรวจหาปัญหาระยะห่าง ให้ดูในมุมมองซอร์สหรือตรวจสอบอักขระที่ตำแหน่งนั้น

ชื่อเอนทิตี HTML แยกตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ไหม?

แยก การอ้างอิงอักขระแบบมีชื่อกำหนดรูปแบบการสะกดไว้ชัดเจน และการเปลี่ยนตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่อาจทำให้ระบบไม่รู้จักการอ้างอิงนั้น ควรใช้ชื่อตามที่ประกาศไว้อย่างถูกต้องและใส่อัฒภาคปิดท้าย แทนการพึ่งพาการแก้ข้อผิดพลาดอัตโนมัติของเบราว์เซอร์

ตัวอักษรที่มีเครื่องหมายกำกับทุกตัวต้องเขียนเป็นเอนทิตีไหม?

ไม่จำเป็น เอกสาร HTML ที่ประกาศ UTF-8 อย่างถูกต้องสามารถใส่อักขระอย่าง é, £ และ 中文 ได้โดยตรง เอนทิตียังคงมีประโยชน์เมื่อไวยากรณ์มาร์กอัป ระบบรุ่นเก่า หรือกฎการเผยแพร่บางอย่างกำหนดให้ใช้

ใช้เอนทิตี HTML ใน XML ได้ไหม?

XML กำหนดเอนทิตีแบบมีชื่อไว้ล่วงหน้าเพียงไม่กี่รายการ ได้แก่ &amp;, &lt;, &gt;, &quot; และ &apos; ชื่อจำนวนมากที่ใช้ได้ใน HTML จะใช้ไม่ได้ใน XML เว้นแต่ชนิดเอกสารจะกำหนดไว้ ดังนั้นการอ้างอิงอักขระด้วยตัวเลขจึงมักเป็นตัวเลือกที่ปลอดภัยกว่า

ตัวแปลงเอนทิตีช่วยซ่อม HTML ที่เสียได้ไหม?

ไม่ได้ เครื่องมือนี้แปลงการอ้างอิงเอนทิตีได้ แต่ไม่ได้ทำให้แท็กเปิดและปิดสมดุล แก้ลำดับการซ้อน หรือยืนยันความถูกต้องของเอกสาร หลังแปลงแล้ว ให้ตรวจสอบมาร์กอัปโดยรอบ และใช้เครื่องมือตรวจสอบ HTML หากหน้าเว็บยังทำงานผิดปกติ

ตรวจสอบขั้นสุดท้าย

ยืนยันก่อนว่าข้อมูลต้นทางใช้การอ้างอิงอักขระ HTML แบบมีชื่อหรือแบบตัวเลข แปลงเฉพาะชั้นการอ้างอิงอักขระที่จำเป็น แล้วเปรียบเทียบผลลัพธ์กับข้อความที่ควรแสดงจริง ก่อนนำเนื้อหาที่ถอดรหัสแล้วไปใส่ในหน้าเว็บที่ใช้งานจริง ให้ตรวจสอบวงเล็บมุม เครื่องหมายอัญประกาศ และเครื่องหมายแอมเพอร์แซนด์ที่ปรากฏขึ้น โดยพิจารณาตามบริบท HTML ที่จะใช้งานจริง

เครื่องมือยอดนิยม