AliceLiumWork Smarter · Finish Faster

HTML Entity เข้ารหัส / ถอดรหัส

แปลง < > & " ' เป็น entity และถอด &#3585; กลับเป็นภาษาไทย พร้อมโหมดกู้ข้อมูลไทยจากฐานข้อมูลระบบเก่า

เข้าสู่ระบบเพื่อใช้เครื่องมือนี้ — ฟรี

สมัครฟรีในไม่ถึงนาที ไม่ต้องใส่บัตรเครดิต — แล้วใช้ได้ทั้ง 196 เครื่องมือ

ไม่มีลายน้ำ เก็บเครื่องมือที่ใช้บ่อย
เริ่มด้วย Google
ฟรี ไม่มีโฆษณา

ทุกบัญชีได้เครดิตฟรีวันละ 5 สะสมได้ถึง 15 · งานละ 1 เครดิต

ทำงานในเครื่องคุณ ไฟล์ไม่ถูกอัปโหลด เห็นผลทันที ไม่ต้องรอคิว หักเครดิต 1 ต่อการใช้หนึ่งครั้ง · ไม่มีเน็ตก็ใช้ได้และไม่หัก
ติดตรงไหน?
1

ใส่ข้อมูล พิมพ์หรือวางลงในช่อง — ไม่ต้องอัปโหลด ไม่ต้องรอคิว

2

เห็นผลทันที ผลลัพธ์อัปเดตตอนพิมพ์ เพราะคำนวณในเครื่องคุณเอง

3

คัดลอกไปใช้ กดคัดลอกแล้ววางต่อได้เลย ปิดหน้าเว็บแล้วข้อมูลหายไปพร้อมกัน

อยากพิสูจน์เอง? ปิด Wi-Fi หรือถอดสายเน็ต แล้วลองใช้เครื่องมือนี้ดู — มันยังทำงานได้ตามปกติ เพราะไม่มีอะไรต้องส่งไปไหน · ส่วนการเปิดหน้านี้ใหม่ตอนไม่มีเน็ตมีเงื่อนไขอยู่ ไม่ได้ได้ทุกกรณี

คำถามเกี่ยวกับHTML Entity เข้ารหัส / ถอดรหัส

ทำไมข้อมูลภาษาไทยในฐานข้อมูลเก่าถึงเก็บเป็น &#3585;&#3586; ทั้งตาราง?

เป็นวิธีเอาตัวรอดของนักพัฒนาไทยยุคปี 2000 ตอนนั้น MySQL ส่วนใหญ่ตั้ง collation เป็น latin1 และเว็บเซิร์ฟเวอร์กับเบราว์เซอร์ยังตกลงเรื่อง charset กันไม่ลงตัว ภาษาไทยที่เขียนลงไปตรง ๆ จึงกลายเป็นตัวประหลาดได้ตลอดเวลา ทางแก้ที่ได้ผลแน่นอนคือแปลงอักษรไทยทุกตัวเป็นเลข HTML entity ก่อนบันทึก เพราะเลขพวกนั้นเป็น ASCII ล้วน ผ่านทุกระบบได้โดยไม่เพี้ยน ข้อเสียคือพอถึงวันย้ายขึ้นระบบใหม่ที่เป็น UTF-8 ข้อมูลทั้งก้อนจะอ่านไม่ออก ต้องถอดกลับก่อน ซึ่งคือสิ่งที่ปุ่ม “ถอดข้อมูลไทยจากระบบเก่าทั้งก้อน” ทำให้

ตอน migrate ฐานข้อมูล ทำไมไม่ควรถอด entity ทุกตัวรวดเดียว?

เพราะในข้อมูลชุดเดียวกันมักมี entity สองประเภทที่ความหมายต่างกันสิ้นเชิงปนอยู่ ประเภทแรกคือเลขที่แทนอักษรไทย ซึ่งต้องถอดกลับ ประเภทที่สองคือ &amp;amp; &amp;lt; &amp;gt; ที่ถูก escape ไว้ถูกต้องแล้วเพื่อกันไม่ให้ข้อความไปทำ HTML ของหน้าเว็บพัง ถ้าถอดตัวที่สองด้วย ข้อมูลที่เคยปลอดภัยจะกลายเป็นแท็กจริงทันทีที่ขึ้นระบบใหม่ อาจเปิดช่อง XSS ให้เว็บของคุณเอง เครื่องมือนี้จึงมีโหมดที่แตะเฉพาะเลขในช่วงอักษรไทย (U+0E00 ถึง U+0E7F) และปล่อยอย่างอื่นไว้เหมือนเดิมทุกตัว

&#3585; กับ &#x0E01; ต่างกันอย่างไร ใช้แบบไหนดี?

เป็นตัวอักษรเดียวกันคือ ก ต่างกันแค่ฐานของตัวเลข แบบแรกเป็นฐานสิบ (3585) แบบหลังเป็นฐานสิบหก (0E01) เบราว์เซอร์อ่านได้ทั้งคู่และให้ผลเหมือนกันเป๊ะ ข้อมูลไทยยุคเก่าส่วนใหญ่ใช้ฐานสิบเพราะภาษาโปรแกรมสมัยนั้นเขียนออกมาแบบนั้นง่ายกว่า ส่วนฐานสิบหกอ่านเทียบกับตาราง Unicode ได้ตรง ๆ จึงสะดวกกว่าเวลาต้องไล่ตรวจว่าตัวไหนคือตัวไหน ในเครื่องมือนี้เลือกได้ทั้งสองแบบตอนเข้ารหัส และถอดได้ทั้งสองแบบเสมอ

ต้องเข้ารหัสแค่ไหนถึงจะพอ มีสามโหมดให้เลือกควรใช้ตัวไหน?

ถ้าเอาข้อความไปวางเป็นเนื้อหาในหน้าเว็บ UTF-8 ปกติ ให้ใช้ “เฉพาะที่จำเป็น” พอ เพราะเปลี่ยนแค่ห้าตัวที่ทำให้ HTML พัง ภาษาไทยยังอ่านออกเหมือนเดิมและไฟล์ไม่บวม ใช้ “ทุกตัวที่ไม่ใช่ ASCII” เมื่อปลายทางบังคับว่าไฟล์ต้องเป็น ASCII ล้วน เช่นเทมเพลตอีเมลรุ่นเก่า หรือระบบที่ตั้ง charset ไม่ได้ ส่วน “สำหรับใส่ในแอตทริบิวต์” ใช้เมื่อค่านั้นจะไปอยู่ใน title= หรือ alt= โหมดนี้เข้ารหัสแม้แต่ช่องว่าง ผลลัพธ์จึงดูรกผิดปกติ ซึ่งตั้งใจให้เป็นแบบนั้น เพราะแอตทริบิวต์ที่ลืมครอบเครื่องหมายคำพูดจะถูกช่องว่างตัดจบแล้วโดนแทรกโค้ดต่อได้

เครื่องมือใกล้เคียง

บอกเราได้

เจอปัญหา หรืออยากได้อะไรเพิ่ม? บอกได้ตรงนี้เลย ไม่ต้องออกจากหน้านี้ไปหาอีเมล

ต้องเข้าสู่ระบบก่อนถึงจะส่งได้ — เพื่อให้เรารู้ว่าใครเจอปัญหา และกันข้อความอัตโนมัติโดยไม่ต้องให้คุณมานั่งพิสูจน์ว่าไม่ใช่บอท เข้าสู่ระบบ