UTILS.
ทำงานในเบราว์เซอร์ 100%
🔤

ตัวตรวจสอบอักขระ Unicode

แยกสตริงใดๆ เป็นจุดโค้ดและแสดง U+ ฐานสิบหก หมวดหมู่ บล็อก ไบต์ UTF-8/UTF-16 HTML entity JS escape percent-encoding และแฟล็กของแต่ละตัว

ป้อนข้อความด้านบนเพื่อตรวจสอบแต่ละอักขระ

เกี่ยวกับเครื่องมือนี้

ตัวตรวจสอบอักขระ Unicode แยกสตริงเป็นจุดโค้ดแต่ละตัวและแสดงทุกอย่างเกี่ยวกับแต่ละตัว มันวนซ้ำทีละจุดโค้ด (ไม่ใช่ทีละหน่วย 16 บิต) ดังนั้นอักขระ astral และอีโมจิที่ทำจาก surrogate pair จึงถูกจัดการอย่างถูกต้อง สำหรับทุกจุดโค้ด คุณจะได้ glyph, ค่าฐานสิบหก U+XXXX, ค่าฐานสิบ, ชื่อสำหรับอักขระที่รู้จักดี, หมวดหมู่ทั่วไป และบล็อก Unicode ที่มันอยู่

การวิเคราะห์ทั้งหมดได้มาจากอัลกอริทึมในเบราว์เซอร์ของคุณและไม่มีการอัปโหลด การเข้ารหัสถูกคำนวณจากหลักการพื้นฐาน: ไบต์ UTF-8 เป็นไปตามกฎการเข้ารหัส 1 ถึง 4 ไบต์ หน่วยโค้ด UTF-16 เป็นหน่วยเดียวใน BMP หรือ surrogate pair สูง/ต่ำ (D800–DBFF / DC00–DFFF) เหนือมัน HTML numeric entity คือ &#nnnn; JavaScript escape คือ \uXXXX สำหรับ BMP หรือ \u{XXXXX} สำหรับจุดโค้ด astral และ percent-encoding คือไบต์ UTF-8 ที่เขียนเป็น %XX หมวดหมู่ทั่วไป (Lu, Ll, Nd, Mn, Zs, Cc และอื่นๆ) ตรวจจับด้วยนิพจน์ปกติ Unicode property-escape

ตัวตรวจสอบทำเครื่องหมายอักขระที่มักทำให้เกิดบั๊กหรือใช้ซ่อนข้อความ: อักขระ zero-width (200B–200D, 2060, FEFF), ตัวควบคุมทิศทางสองทาง (200E, 200F, 202A–202E, 2066–2069), เครื่องหมายผสม และอักขระควบคุม C0/C1 — สิ่งเหล่านี้แสดงเป็นจุดเพื่อให้เนื้อหาที่มองไม่เห็นปรากฏ บรรทัดสรุปรายงานจำนวนจุดโค้ด ความยาว UTF-16 (String.length) และจำนวนไบต์ UTF-8 ทั้งหมด เครื่องมือนี้ใช้ตรวจสอบ; หากต้องการทำ normalize ระหว่าง NFC และ NFD ให้ใช้ตัว normalize Unicode คัดลอกการแยกวิเคราะห์เต็มเป็นข้อความคั่นด้วยแท็บ

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

ทำไมอีโมจินับเป็นหนึ่งรายการแต่มีความยาว 2?
อีโมจิหลายตัวและอักขระทั้งหมดเหนือ U+FFFF เป็นจุดโค้ดเดียวที่เข้ารหัสใน UTF-16 เป็น surrogate pair — สองหน่วย 16 บิต ตัวตรวจสอบวนซ้ำทีละจุดโค้ด จึงแสดงหนึ่งแถว ขณะที่ String.length ของ JavaScript นับสองหน่วย ซึ่งบรรทัดสรุปรายงานแยกต่างหาก
ไบต์ UTF-8 และ UTF-16 ได้มาอย่างไร?
ถูกคำนวณโดยตรงจากจุดโค้ด: UTF-8 ใช้กฎ 1–4 ไบต์มาตรฐาน และ UTF-16 เป็นหนึ่งหน่วยสำหรับอักขระ BMP หรือ surrogate pair สูง+ต่ำ (D800–DBFF แล้ว DC00–DFFF) สำหรับอักขระ astral percent-encoding คือไบต์ UTF-8 เหล่านั้นเป็น %XX
แฟล็กหมายความว่าอย่างไร?
พวกมันเน้นอักขระที่พลาดง่าย: zero-width (200B–200D, 2060, FEFF), ตัวควบคุมทิศทางสองทางที่จัดลำดับข้อความใหม่ได้, เครื่องหมายผสมที่แนบกับตัวอักษรก่อนหน้า และอักขระควบคุม อักขระเช่นนี้แสดงเป็นจุดกลางเพื่อเปิดเผยเนื้อหาที่ซ่อนหรือมองไม่เห็น
มันแสดงชื่ออักขระ Unicode อย่างเป็นทางการไหม?
มันตั้งชื่ออักขระที่รู้จักดี (โค้ดควบคุม ช่องว่าง ตัวควบคุม zero-width และ bidi) และแสดงบล็อก Unicode และหมวดหมู่ทั่วไปสำหรับทุกจุดโค้ดเสมอ ชื่อรายอักขระเต็มจากฐานข้อมูล Unicode ไม่ได้รวมมา ดังนั้นชื่อบล็อกจึงทำหน้าที่เป็นตัวอธิบายในกรณีอื่น

เครื่องมือเพิ่มเติม