ตัวแปลงข้อความ ↔ Unicode
ข้อความ
ยูนิโค้ด
รายละเอียดทางเทคนิค
ตัวแปลง ข้อความ ↔ Unicode ทำงานอย่างไร
เครื่องมือนี้ทำอะไร
เครื่องมือ ข้อความ ↔ Unicode แปลงข้อความไปมาเป็นจุดรหัส Unicode (code points) ได้หลายรูปแบบ: U+XXXX, เอสเคปของ JavaScript (\uXXXX หรือ \u{XXXXX}), เลขฐานสิบ, 0xHEX และเอนทิตีตัวเลขของ HTML (&#N; หรือ &#xHEX;). ตัวถอดรหัสยืดหยุ่น — มันรู้จำการผสมกันของรูปแบบเหล่านี้ที่คั่นปนอยู่กับข้อความ และดึงจุดรหัสออกมาได้ ตัวเข้ารหัสให้คุณเลือกฟอร์แมตผลลัพธ์และตัวคั่นระหว่างจุดรหัสได้
กรณีการใช้งานทั่วไปของนักพัฒนา
นักพัฒนา Frontend ใช้เครื่องมือนี้เพื่อแปลงอีโมจิและอักขระ CJK ให้เป็นลำดับเอสเคป ASCII ที่ปลอดภัยสำหรับไฟล์ JSON ซอร์สโค้ด หรือการส่งผ่านช่องทางที่มีข้อจำกัด วิศวกรโลคัลไลเซชันใช้ตรวจสอบจุดรหัสที่แน่นอนที่ถูกใช้ในสตริงที่แปลแล้ว เครื่องมือนี้ยังช่วยในการสังเกตอักขระที่มองไม่เห็นหรืออักขระหน้าตาคล้ายกัน (homoglyphs, zero-width joiners, เครื่องหมาย RTL) ที่ซ่อนอยู่ในสไนเป็ตที่คัดลอกมา
รูปแบบข้อมูล ชนิด หรือรูปแบบย่อย
สัญกรณ์มาตรฐานของ Unicode คือ U+XXXX สำหรับ Basic Multilingual Plane และ U+XXXXX สำหรับระนาบเสริม (supplementary planes) เอสเคปของ JavaScript ใช้ \uXXXX สำหรับ BMP และ \u{XXXXX} (ES2015+) สำหรับช่วงทั้งหมด HTML รองรับเอนทิตีตัวเลข (ฐานสิบ &#N; หรือฐานสิบหก &#xN;) รูปแบบเลขฐานสิบแบบตรงและ 0xHEX สามารถแปลงไป-กลับผ่าน codePointAt / fromCodePoint ได้โดยไม่ต้องตีความเพิ่มเติม อักขระนอก BMP (astral characters) (อีโมจิเช่น 🌍) จะแทนด้วยจุดรหัสเดียวที่มากกว่า U+FFFF
ข้อผิดพลาดที่พบบ่อยและกรณีขอบ
อักขระนอก BMP (astral characters) ไม่สามารถเขียนด้วยรูปแบบเก่า \uXXXX ได้ เพราะแต่ละเอสเคปมีเลขฐานสิบหกเพียง 4 หลัก — ให้ใช้ \u{...} หรือคู่ซูร์โรเกต (surrogate pair) จุดรหัสที่มากกว่า U+10FFFF ไม่ถูกต้องตามสเปก Unicode และจะถูกปฏิเสธ เครื่องหมายกำกับเสียง (combining marks) และลำดับอีโมจิแบบ ZWJ จะปรากฏเป็นหลายจุดรหัส แม้ว่าจะแสดงผลเป็นไกลฟ์เดียว ตัวถอดรหัสจะไม่ตีความเอนทิตีชื่อของ HTML (©, &) — สำหรับกรณีนั้นให้ใช้ตัวถอดรหัส HTML โดยเฉพาะ
เมื่อใดควรใช้เครื่องมือนี้แทนการเขียนโค้ด
ใช้เครื่องมือบนเบราว์เซอร์สำหรับการตรวจดูอย่างรวดเร็ว การสร้างลำดับเอสเคป และการตามหา homoglyph ในโค้ด ให้ใช้ API สตริงที่มากับภาษาเป็นหลัก (`String.fromCodePoint`, `Array.from(str)` สำหรับการวนซ้ำตามจุดรหัสใน JS; `chr` และ `ord` ใน Python; `Character.toCodePoint` ใน Java) และใช้ไลบรารี ICU แบบเต็มเมื่อคุณต้องการการทำ normalization (NFC/NFD), case folding หรือการแบ่ง grapheme-cluster