อภิธานศัพท์ Unicode
คำศัพท์ Unicode ที่จำเป็น 150 คำอธิบาย — ตั้งแต่พื้นฐานการเข้ารหัสอักขระจนถึงแนวคิดด้านความปลอดภัย
การเข้ารหัส (17)
มาตรฐานรหัสข้อมูลของอเมริกา (American Standard Code for Information Interchange) การเข้ารหัส 7 บิตครอบคลุม 128 ตัวอักษร (0–127) ได้แก่ อักขระควบคุม ตัวเลข ตัวอักษรละติน และสัญลักษณ์พื้นฐาน
Visual art created from text characters, originally limited to the 95 printable ASCII characters. Unicode expands the palette with box-drawing …
Binary-to-text encoding that represents binary data using 64 ASCII characters (A–Z, a–z, 0–9, +, /). Used for embedding binary data …
การเข้ารหัสอักษรจีนตัวเต็มที่ใช้ส่วนใหญ่ในไต้หวันและฮ่องกง เข้ารหัสอักขระ CJK ประมาณ 13,000 ตัว
Extended Binary Coded Decimal Interchange Code รหัสเข้ารหัสของเมนเฟรม IBM ที่มีช่วงตัวอักษรไม่ต่อเนื่อง ยังคงใช้ในธนาคารและเมนเฟรมองค์กร
การเข้ารหัสอักขระภาษาเกาหลีที่อิงตาม KS X 1001 แมปอักษรฮันกึลและฮันจาเป็นลำดับสองไบต์
กลุ่มการเข้ารหัสอักษรจีนตัวย่อ: GB2312 (6,763 อักขระ) พัฒนาเป็น GBK แล้วเป็น GB18030 ซึ่งเป็นมาตรฐานแห่งชาติจีนที่บังคับใช้และเข้ากันได้กับ Unicode
กลุ่มการเข้ารหัสไบต์เดี่ยว 8 บิตสำหรับกลุ่มภาษาต่างๆ ISO 8859-1 (Latin-1) เป็นพื้นฐานของ 256 จุดรหัสแรกของ Unicode
การเข้ารหัสอักขระภาษาญี่ปุ่นที่ผสม ASCII/JIS Roman แบบไบต์เดี่ยวกับคันจิ JIS X 0208 แบบสองไบต์ ยังคงใช้งานในระบบญี่ปุ่นรุ่นเก่า
การเข้ารหัส 2 ไบต์แบบความยาวคงที่ที่ล้าสมัย ครอบคลุมเฉพาะ BMP (U+0000–U+FFFF) เป็นรุ่นก่อนของ UTF-16 ที่ไม่สามารถแสดงอักขระเสริมได้
การเข้ารหัส Unicode แบบความยาวแปรผันที่ใช้ 2 หรือ 4 ไบต์ (1 หรือ 2 หน่วยรหัส 16 บิต) ใช้ภายในโดย Java, JavaScript และ Windows
การเข้ารหัส Unicode แบบความยาวคงที่ที่ใช้ 4 ไบต์ต่ออักขระ ง่ายแต่ไม่ประหยัดพื้นที่ ใช้ภายในโดย Python 3 (CPython)
การเข้ารหัส Unicode แบบความยาวแปรผันที่ใช้ 1–4 ไบต์ต่ออักขระ เป็นการเข้ารหัสที่นิยมใช้มากที่สุดบนเว็บ (มากกว่า 98% ของเว็บไซต์) และรองรับ ASCII แบบย้อนหลังอย่างสมบูรณ์
ชุดอักขระของ Microsoft ที่เป็น superset ของ ISO 8859-1 เพิ่มเครื่องหมายคำพูด em dash และสัญลักษณ์ยูโรในช่วง 0x80–0x9F เป็นการเข้ารหัส "Latin" แบบเดิมที่พบบ่อยที่สุด
ระบบที่แมปอักขระเป็นลำดับไบต์สำหรับการจัดเก็บและส่งผ่านข้อมูลดิจิทัล ทุกไฟล์ข้อความมีการเข้ารหัส คำถามคือมีการประกาศอย่างถูกต้องหรือไม่
รายการอย่างเป็นทางการของชื่อการเข้ารหัสอักขระที่ดูแลโดย IANA ใช้ในส่วนหัว HTTP Content-Type และ MIME (เช่น charset=utf-8)
U+FEFF ที่วางไว้ที่ต้นสตรีมข้อความเพื่อระบุลำดับไบต์และการเข้ารหัส จำเป็นสำหรับ UTF-16/32 แต่เป็นทางเลือกและไม่แนะนำสำหรับ UTF-8
มาตรฐาน Unicode (25)
ระนาบ 0 (U+0000–U+FFFF) ประกอบด้วยอักขระที่ใช้บ่อยที่สุด ได้แก่ Latin, Greek, Cyrillic, CJK, Arabic และสัญลักษณ์ส่วนใหญ่ อักขระในระนาบนี้พอดีกับหนึ่งหน่วยรหัส UTF-16
จีน ญี่ปุ่น และเกาหลี คำรวมสำหรับบล็อกอักษรจีน Han ที่รวมกันและอักษรที่เกี่ยวข้องใน Unicode CJK Unified Ideographs มีอักขระมากกว่า 20,992 ตัว
The process of mapping Chinese, Japanese, and Korean ideographs that share a common historical origin to a single Unicode code …
The individual consonant and vowel components (jamo) of the Korean Hangul writing system. Unicode encodes both precomposed Hangul syllables (U+AC00–U+D7A3) …
มาตรฐานสากล (ISO/IEC 10646) ที่ซิงโครไนซ์กับ Unicode กำหนดชุดอักขระและจุดรหัสเดียวกัน แต่ไม่มีอัลกอริธึมและคุณสมบัติเพิ่มเติมของ Unicode
มาตรฐานการเข้ารหัสอักขระสากลที่กำหนดหมายเลขเฉพาะ (จุดรหัส) ให้กับทุกอักขระในทุกระบบการเขียน เวอร์ชัน 16.0 มีอักขระที่กำหนดแล้ว 154,998 ตัว
คอลเลกชันไฟล์ข้อมูลที่อ่านได้ด้วยเครื่องซึ่งกำหนดคุณสมบัติอักขระ Unicode ทั้งหมด รวมถึง UnicodeData.txt, Blocks.txt, Scripts.txt และอื่นๆ
Normative or informative documents that are integral parts of the Unicode Standard. UAX#9 (Bidi Algorithm), UAX#11 (East Asian Width), UAX#15 …
Informational documents published by the Unicode Consortium covering specific topics like security mechanisms (UTR#39), text segmentation (UTR#29), and line breaking …
จุดรหัสใดๆ ยกเว้นจุดรหัส surrogate (U+D800–U+DFFF) ชุดค่าที่ถูกต้องซึ่งสามารถแทนอักขระจริงได้ รวมทั้งสิ้น 1,112,064 ค่า
ค่าตัวเลขในพื้นที่รหัส Unicode (U+0000 ถึง U+10FFFF) เขียนในรูปแบบ U+XXXX ไม่ใช่ทุกจุดรหัสที่จะถูกกำหนดให้กับอักขระ
จุดรหัสที่ยังไม่ได้กำหนดอักขระในเวอร์ชัน Unicode ใดๆ จัดอยู่ในหมวด Cn (ยังไม่กำหนด) อาจถูกกำหนดในเวอร์ชันอนาคต
จุดรหัสที่กันไว้สำหรับการกำหนดมาตรฐานในอนาคต แตกต่างจาก noncharacter (สงวนไว้ถาวร) และพื้นที่ private use (กำหนดได้โดยผู้ใช้)
จุดรหัส U+D800–U+DFFF ที่สงวนไว้เฉพาะสำหรับคู่ surrogate ของ UTF-16 ไม่ใช่ค่าสเกลาร์ Unicode ที่ถูกต้องและไม่ควรปรากฏเป็นอักขระเดี่ยวๆ
การรับประกันว่าเมื่อกำหนดอักขระแล้ว จุดรหัสและชื่อจะไม่มีวันเปลี่ยนแปลง คุณสมบัติอาจได้รับการปรับปรุงแต่การกำหนดนั้นถาวร
ช่วงทั้งหมดของจุดรหัส Unicode ที่เป็นไปได้: U+0000 ถึง U+10FFFF (รวม 1,114,112 จุด) แบ่งออกเป็น 17 ระนาบ แต่ละระนาบมี 65,536 จุดรหัส
ช่วงที่สงวนไว้สำหรับให้องค์กรกำหนดอักขระของตนเอง: BMP PUA (U+E000–U+F8FF) บวกกับ Supplementary PUA ในระนาบ 15 และ 16
บล็อกจุดรหัสต่อเนื่องกัน 65,536 จุด Unicode มี 17 ระนาบ (0–16): ระนาบ 0 คือ BMP ระนาบ 1 คือ SMP (emoji, อักษรโบราณ) ระนาบ 2 …
ระนาบ 1–16 (U+10000–U+10FFFF) ประกอบด้วย emoji อักษรโบราณ ส่วนขยาย CJK และโน้ตดนตรี ต้องใช้คู่ surrogate ใน UTF-16
องค์กรไม่แสวงหาผลกำไรที่พัฒนาและดูแล Unicode Standard สมาชิกได้แก่ Apple, Google, Microsoft, Meta และอีกหลายองค์กร
หน่วยการเข้ารหัสขั้นต่ำ: ไบต์ 8 บิตใน UTF-8, คำ 16 บิตใน UTF-16, คำ 32 บิตใน UTF-32 อักขระเดี่ยวอาจต้องใช้หลายหน่วยรหัส
จุดรหัสที่ได้รับการกำหนดอักขระในเวอร์ชัน Unicode ณ Unicode 16.0 มีจุดรหัสที่กำหนดแล้ว 154,998 จุดจาก 1,114,112 จุดที่เป็นไปได้
หน่วยข้อมูลที่ใช้สำหรับจัดระเบียบ ควบคุม หรือแทนข้อมูลข้อความ — เป็นเอนทิตีเชิงแนวคิดก่อนที่จะได้รับจุดรหัส
เวอร์ชันหลักของ Unicode Standard แต่ละเวอร์ชันเพิ่มอักขระ อักษร และคุณสมบัติใหม่ เวอร์ชันปัจจุบันคือ Unicode 16.0 (กันยายน 2025)
จุดรหัสที่สงวนไว้อย่างถาวรสำหรับใช้ภายใน (รวม 66 จุด): U+FDD0–U+FDEF และ U+nFFFE/U+nFFFF สำหรับแต่ละระนาบ ใช้งานได้ในข้อความแต่ไม่ควรแลกเปลี่ยนภายนอก
คุณสมบัติ (19)
Unicode property (UAX#11) classifying characters as Narrow, Wide, Fullwidth, Halfwidth, Ambiguous, or Neutral. Wide characters (CJK ideographs, katakana) occupy two …
Unicode property controlling how Arabic and Syriac characters connect to adjacent characters. Types include Right_Joining, Left_Joining, Dual_Joining, and Non_Joining.
Unicode property listing all scripts that use a character, broader than the single-valued Script property. Common characters like digits have …
อักขระที่ผู้ใช้รับรู้ได้ — สิ่งที่รู้สึกเหมือนหน่วยเดียว อาจประกอบด้วยหลายจุดรหัส (ฐาน + เครื่องหมายรวม หรือลำดับ emoji ZWJ) 👩💻 = 3 จุดรหัส, 1 grapheme
กฎสำหรับแปลงอักขระระหว่างตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก และตัวพิมพ์หัวเรื่อง อาจขึ้นอยู่กับ locale (ปัญหาตัว I ในภาษาตุรกี) และอาจเป็นแบบหนึ่ง-ต่อ-หลาย (ß → SS)
การแมปอักขระเป็นส่วนประกอบย่อย การแยกส่วนแบบ canonical รักษาความหมาย (é → e + ́) ในขณะที่การแยกส่วนแบบ compatibility อาจเปลี่ยนความหมาย (fi → fi)
ค่าตัวเลข (0–254) ที่ควบคุมลำดับของเครื่องหมายรวมระหว่างการแยกส่วนแบบ canonical กำหนดว่าเครื่องหมายรวมใดสามารถเรียงลำดับใหม่ได้
ลำดับอักขระสองชุดที่มีเนื้อหาเชิงนามธรรมเดียวกันแต่อาจแตกต่างในรูปลักษณ์ กว้างกว่าความเท่าเทียมแบบ canonical ตัวอย่าง: fi ≈ fi, ² ≈ 2
ลำดับอักขระสองชุดที่มีความหมายเหมือนกันและควรถือว่าเท่าเทียมกัน ตัวอย่าง: é (U+00E9) ≡ e + ◌́ (U+0065 + U+0301)
อักขระที่รูปร่างควรสะท้อนในแนวนอนในบริบท RTL ตัวอย่าง: ( → ), [ → ], { → }, « → »
เวอร์ชัน Unicode ที่มีการกำหนดอักขระเป็นครั้งแรก มีประโยชน์สำหรับการตรวจสอบการรองรับอักขระในระบบและซอฟต์แวร์เวอร์ชันต่างๆ
การตีความตัวเลขของอักขระ หากมี: ค่าหลัก (0–9) ค่าทศนิยม หรือค่าตัวเลขทั่วไป (เช่น ½ = 0.5, Ⅳ = 4)
ชื่อทางเลือกสำหรับอักขระ เนื่องจากชื่อ Unicode ไม่สามารถเปลี่ยนแปลงได้ตามนโยบายความเสถียร ใช้สำหรับการแก้ไข คำย่อ และชื่อที่กำหนดใหม่
ช่วงจุดรหัสต่อเนื่องกันที่มีชื่อ (เช่น Basic Latin = U+0000–U+007F) Unicode 16.0 กำหนด 336 บล็อก ทุกจุดรหัสอยู่ในหนึ่งบล็อกพอดี
ระบบการเขียนที่อักขระนั้นสังกัด (เช่น Latin, Cyrillic, Han) Unicode 16.0 กำหนด 168 อักษร คุณสมบัติ Script มีความสำคัญสำหรับความปลอดภัยและการตรวจจับอักษรผสม
อักขระที่ไม่มีผลที่มองเห็นได้และสามารถละเว้นได้โดยกระบวนการที่ไม่รองรับ รวมถึง variation selectors อักขระ zero-width และแท็กภาษา
การจัดประเภทจุดรหัสทุกจุดเป็นหนึ่งใน 30 หมวดหมู่ (Lu, Ll, Nd, So ฯลฯ) จัดกลุ่มเป็น 7 คลาสหลัก: ตัวอักษร เครื่องหมาย ตัวเลข เครื่องหมายวรรคตอน สัญลักษณ์ ตัวแบ่ง และอื่นๆ
คุณสมบัติที่กำหนดว่าอักขระมีพฤติกรรมอย่างไรในข้อความสองทิศทาง (LTR, RTL, อ่อน, เป็นกลาง) ใช้โดยอัลกอริธึม Bidirectional ของ Unicode เพื่อกำหนดลำดับการแสดงผล
อักขระที่ใช้จัดระเบียบและชี้แจงภาษาเขียน ได้แก่ จุด ลูกน้ำ เส้นประ เครื่องหมายคำพูด และอื่นๆ หมวดหมู่ทั่วไป Unicode P ครอบคลุมเครื่องหมายวรรคตอนทั้งหมด
อัลกอริทึม (15)
Mapping characters to a common case form for case-insensitive comparison. More comprehensive than lowercasing: German ß → ss, Turkish İ …
Rules (UAX#29) for determining where one user-perceived character ends and another begins. Critical for cursor movement, text selection, and correctly …
Normalization Form C: แยกส่วนแล้วรวมใหม่แบบ canonical ได้รูปแบบที่สั้นที่สุด แนะนำสำหรับการจัดเก็บและแลกเปลี่ยนข้อมูล เป็นรูปแบบมาตรฐานของเว็บ
Normalization Form D: แยกส่วนอย่างสมบูรณ์โดยไม่รวมใหม่ ใช้โดยระบบไฟล์ macOS HFS+ é (U+00E9) → e + ◌́ (U+0065 + U+0301)
Normalization Form KC: แยกส่วนแบบ compatibility แล้วรวมแบบ canonical รวมอักขระที่มีลักษณะคล้ายกัน (fi→fi, ²→2, Ⅳ→IV) ใช้สำหรับการเปรียบเทียบตัวระบุ
Normalization Form KD: แยกส่วนแบบ compatibility โดยไม่รวมใหม่ เป็นการ normalize ที่เข้มงวดที่สุด สูญเสียข้อมูลการจัดรูปแบบมากที่สุด
Comparing Unicode strings requires normalization (NFC/NFD) and optionally collation (locale-aware sorting). Binary comparison of code points alone gives incorrect results …
กระบวนการแปลงข้อความ Unicode เป็นรูปแบบ canonical มาตรฐาน มี 4 รูปแบบ: NFC (รวม), NFD (แยก), NFKC (compatibility รวม), NFKD (compatibility แยก)
อักขระที่ถูกยกเว้นจากการรวมแบบ canonical (NFC) เพื่อป้องกันการแตกย่อยแบบ non-starter และรับประกันความเสถียรของอัลกอริทึม ระบุไว้ใน CompositionExclusions.txt
อัลกอริธึมสำหรับค้นหาขอบเขตในข้อความ: ขอบเขต grapheme cluster, คำ และประโยค มีความสำคัญสำหรับการเลื่อนเคอร์เซอร์ การเลือกข้อความ และการประมวลผลข้อความ
ตำแหน่งระหว่างคำตามกฎการแบ่งคำของ Unicode ไม่ใช่แค่การแบ่งตามช่องว่าง แต่รองรับ CJK (ไม่มีช่องว่าง) คำย่อ และตัวเลขอย่างถูกต้อง
ตำแหน่งระหว่างประโยคตามกฎ Unicode ซับซ้อนกว่าการแบ่งตามจุดธรรมดา รองรับคำย่อ (Mr.) จุดไข่ปลา (...) และจุดทศนิยม (3.14)
กฎสำหรับกำหนดตำแหน่งที่ข้อความสามารถตัดขึ้นบรรทัดใหม่ได้ โดยคำนึงถึงคุณสมบัติอักขระ ขอบเขตคำ CJK และโอกาสการตัด
อัลกอริธึมมาตรฐานสำหรับเปรียบเทียบและเรียงลำดับสตริง Unicode โดยใช้การเปรียบเทียบหลายระดับ: อักขระฐาน → สำเนียง → ตัวพิมพ์ → ตัวตัดสิน ปรับแต่งตาม locale ได้
อัลกอริธึมที่กำหนดลำดับการแสดงผลของอักขระในข้อความที่มีทิศทางผสม (เช่น ภาษาอังกฤษ + ภาษาอาหรับ) โดยใช้หมวดหมู่ bidi ของอักขระและการแทนที่ทิศทางอย่างชัดเจน
การออกแบบตัวอักษร (19)
CSS @font-face descriptor specifying which Unicode code points a font should cover. Enables downloading only the font subset needed for …
Em: ความกว้างเท่ากับขนาดฟอนต์ En: ครึ่งหนึ่งของ em ใช้กำหนดความกว้างของ em dash, em space, en space และหน่วย CSS (1em, 0.5em)
The mechanism by which a rendering engine substitutes glyphs from a secondary font when the primary font lacks coverage for …
Modern font format developed by Microsoft and Adobe supporting up to 65,535 glyphs, advanced typographic features (ligatures, alternates, kerning), and …
ทิศทางของข้อความที่อักขระไหลจากขวาไปซ้าย ใช้กับภาษาอาหรับ ฮีบรู Thaana และอักษรอื่นๆ ต้องใช้อัลกอริทึม Bidirectional เพื่อแสดงผลอย่างถูกต้อง
Fonts downloaded by the browser to render text, declared via CSS @font-face. WOFF2 is the standard format. Unicode subsetting and …
การปรับระยะห่างระหว่างคู่อักขระเฉพาะเพื่อความสวยงามทางสายตา (เช่น AV, To, LT) เป็นคุณสมบัติของฟอนต์ ไม่ใช่แนวคิด Unicode แต่มีผลต่อการแสดงผลข้อความ Unicode
U+2026 HORIZONTAL ELLIPSIS (…) อักขระเดี่ยวที่แทนที่จุดสามจุด ถูกต้องตามหลักการพิมพ์และนับเป็น 1 อักขระแทนที่จะเป็น 3
U+00A0 ช่องว่างที่ป้องกันการขึ้นบรรทัดใหม่ที่ตำแหน่งนั้น HTML: ใช้ระหว่างตัวเลขและหน่วย (100 km) ในชื่อเฉพาะ (Mr. Smith) และหลังคำย่อ
รูปแบบตัวพิมพ์ใหญ่ที่มีความสูงเท่ากับตัวพิมพ์เล็ก CSS: font-variant: small-caps Unicode ยังมีตัวอักษรพิมพ์ใหญ่ขนาดเล็กจริงใน Latin Extended (ᴀ–ᴢ)
อักขระตั้งแต่สองตัวขึ้นไปที่รวมเข้าเป็น glyph เดียว อาจเป็นการเชื่อมแบบตัวพิมพ์ (fi → fi ผ่าน OpenType) หรืออักขระ Unicode (fi U+FB01) อักษรอาหรับใช้ตัวเชื่อมแบบบังคับ
เครื่องหมายวรรคตอนที่ใช้แยกส่วนของประโยคหรือระบุช่วง Unicode กำหนดเส้นประหลายแบบ ได้แก่ hyphen (‐), en dash (–), em dash (—), figure dash (‒) และอื่นๆ
การแสดงผลทางสายตาของอักขระที่เรนเดอร์โดยฟอนต์ อักขระหนึ่งอาจมีหลาย glyph (ตัวเชื่อม รูปแบบตามบริบท) และ glyph หนึ่งอาจแทนหลายอักขระได้
อักขระที่มีความกว้างศูนย์ ไม่ปรากฏเมื่อเรนเดอร์แต่ส่งผลต่อพฤติกรรมของข้อความ ได้แก่ ZWSP (ตัวแบ่งคำ) ZWJ (ตัวเชื่อม) ZWNJ (ป้องกันการเชื่อม) และ WJ (ป้องกันการแบ่ง)
อักขระที่แทนช่องว่างในแนวนอนหรือแนวตั้งแต่ไม่มี glyph ที่มองเห็นได้ Unicode กำหนดอักขระ whitespace มากกว่า 17 ตัวที่มีความกว้างและพฤติกรรมการขึ้นบรรทัดใหม่แตกต่างกัน
อักขระที่ติดกับอักขระฐานก่อนหน้าเพื่อปรับเปลี่ยนมัน หมวดหมู่ทั่วไป: Mn (nonspacing), Mc (spacing combining), Me (enclosing) ตัวอย่าง: ◌́ (U+0301 Combining Acute)
เครื่องหมายที่เพิ่มบนตัวอักษรเพื่อเปลี่ยนการออกเสียงหรือความหมาย อาจเป็นแบบ precomposed (é U+00E9) หรือ combining (e + ◌́ U+0065+U+0301) ได้แก่ เครื่องหมายเน้นเสียง umlaut cedilla และ tilde
เครื่องหมายวรรคตอนคู่ที่ล้อมรอบคำพูดตรงหรือข้อความอ้างอิง Unicode รวมถึงเครื่องหมายตรง ("") เครื่องหมายโค้ง ("") guillemets (« ») วงเล็บมุม CJK (「」) และรูปแบบเฉพาะของแต่ละภาษา
การนำชุดแบบอักษรมาใช้งานที่ขนาด น้ำหนัก และสไตล์เฉพาะ ในการพิมพ์ดิจิทัล ไฟล์ฟอนต์ (TTF, OTF, WOFF2) จะประกอบด้วยนิยาม glyph และค่าเมตริก
วิธีการป้อนข้อมูล (9)
A system-level tool for browsing and inserting Unicode characters. macOS Character Viewer (Ctrl+Cmd+Space), Windows Character Map (charmap.exe), and Linux gucharmap …
ส่วนประกอบซอฟต์แวร์ที่ช่วยให้ป้อนอักขระที่ซับซ้อน (CJK ภาษาเกาหลี ฯลฯ) ด้วยแป้นพิมพ์มาตรฐาน แปลงลำดับการกดแป้นเป็นอักขระผ่านการจับคู่แบบสัทศาสตร์หรือโครงสร้าง
การป้อน code point Unicode โดยตรงด้วยการพิมพ์ค่า hex Mac: กด Option ค้างไว้ + hex + ปล่อย Windows: พิมพ์ hex แล้วกด Alt+X ใน …
แป้นที่ไม่ผลิตผลลัพธ์ทันทีแต่ปรับเปลี่ยนการกดแป้นถัดไป ใช้สำหรับเครื่องหมายกำกับเสียง: กด ` แล้วกด e จะได้ è พบทั่วไปในรูปแบบแป้นพิมพ์ยุโรป
ส่วนประกอบ UI (แบบ native หรือบนเว็บ) สำหรับเรียกดูและเลือกอักขระด้วยสายตา ตัวเลือก emoji บนอุปกรณ์มือถือเป็นตัวอย่างที่พบบ่อยที่สุด
แป้น (มักเป็น Alt ขวาหรือที่กำหนดเอง) ที่เริ่มลำดับการรวมหลายแป้น เป็นคุณสมบัติของ Linux/Unix: Compose + a + e → æ สามารถกำหนดค่าได้ผ่าน XCompose
วิธีการป้อนข้อมูลของ Windows โดยใช้ Alt + ตัวเลขจาก numpad เพื่อพิมพ์อักขระตามหมายเลขหน้าโค้ด (Alt+0169 → ©, Alt+0176 → °) จำกัดอยู่ที่อักขระของหน้าโค้ด 1252
วิธีการใดก็ตามในการป้อนอักขระโดยใช้ code point Unicode ได้แก่ การป้อน hex (Mac) การป้อน U+XXXX ผ่าน Ctrl+Shift+U (Linux) หรือ Alt+X (แอปพลิเคชัน Windows)
ยูทิลิตี GUI สำหรับเรียกดูและแทรกอักขระ Unicode Windows: charmap.exe Mac: Character Viewer (Control+Command+Space) Linux: gucharmap
เว็บและ HTML (16)
CSS properties (direction, writing-mode, unicode-bidi) controlling text layout direction. Works with Unicode Bidi Algorithm for mixed LTR/RTL content in web …
การแทนค่าอักขระในรูปแบบข้อความใน HTML สามรูปแบบ: ชื่อ (&), ทศนิยม (&), เลขฐานสิบหก (&) จำเป็นสำหรับอักขระที่ขัดแย้งกับไวยากรณ์ HTML
ชื่อโดเมนที่มีอักขระ Unicode ที่ไม่ใช่ ASCII เก็บไว้ภายในเป็น Punycode (xn--...) แต่แสดงเป็น Unicode ให้ผู้ใช้เห็น ความกังวลด้านความปลอดภัย: การโจมตีแบบ homograph
ECMAScript Internationalization API providing locale-aware string comparison (Collator), number formatting (NumberFormat), date formatting (DateTimeFormat), and segmentation (Segmenter).
การเข้ารหัสที่เข้ากันได้กับ ASCII สำหรับชื่อโดเมน Unicode แปลงป้ายกำกับที่ถูก internationalize เป็นสตริง ASCII ที่มีคำนำหน้า xn-- münchen.de → xn--mnchen-3ya.de
CSS supports Unicode via escape sequences (\2713 for ✓), the content property for generated text, unicode-range for font subsetting, and …
เวอร์ชัน XML ของการอ้างอิงอักขระเชิงตัวเลข: ✓ หรือ ✓ XML มีเพียง 5 entity ที่มีชื่อ (& < > " ') ในขณะที่ HTML5 มี 2,231 …
HTML entity ที่ใช้ชื่อที่อ่านง่าย: © → ©, — → — HTML5 กำหนด 2,231 การอ้างอิงแบบมีชื่อ และทั้งหมดคำนึงถึงตัวพิมพ์เล็ก-ใหญ่
HTML entity ที่ใช้หมายเลข code point Unicode: ทศนิยม (© → ©) หรือเลขฐานสิบหก (© → ©) ใช้ได้กับอักขระ Unicode ทุกตัว ต่างจากการอ้างอิงแบบมีชื่อ
การเข้ารหัสอักขระที่ไม่ใช่ ASCII และอักขระที่สงวนไว้ใน URL โดยแทนที่แต่ละไบต์ด้วย %XX ใช้ UTF-8 ก่อน แล้วเข้ารหัส percent แต่ละไบต์: é → %C3%A9
การเรนเดอร์อักขระด้วย glyph ข้อความสีเดียวธรรมดาแทนที่จะเป็น emoji แบบสี มักใช้ Variation Selector 15 (U+FE0E) เพื่อแทนที่การแสดงผล emoji เริ่มต้น
การเรนเดอร์อักขระด้วย glyph emoji แบบสี มักใช้ Variation Selector 16 (U+FE0F) อักขระบางตัวมีค่าเริ่มต้นเป็นการแสดงผล emoji ส่วนอื่นๆ เป็นการแสดงผลข้อความ
คุณสมบัติ CSS ที่แทรกเนื้อหาที่สร้างขึ้นผ่าน pseudo-element ::before และ ::after โดยใช้ Unicode escape: content: "\2713" แทรก ✓
พารามิเตอร์ header HTTP ที่ประกาศการเข้ารหัสอักขระของการตอบสนอง (Content-Type: text/html; charset=utf-8) แทนที่การประกาศการเข้ารหัสใดๆ ในเอกสาร
U+2060 อักขระความกว้างศูนย์ที่ป้องกันการขึ้นบรรทัดใหม่ เป็นการแทนที่สมัยใหม่ของ U+FEFF (BOM) ในฐานะ zero-width no-break space
อักขระ (U+FE00–U+FE0F, U+E0100–U+E01EF) ที่เลือกรูปแบบ glyph เฉพาะ VS15 (U+FE0E) = การแสดงผลแบบข้อความ VS16 (U+FE0F) = การแสดงผลแบบ emoji
การเขียนโปรแกรมและการพัฒนา (13)
Java strings use UTF-16 internally. char is 16-bit (only BMP). For supplementary characters, use codePointAt() and Character.toChars(). Java's \uXXXX escapes …
ข้อความที่เสียหายจากการถอดรหัสไบต์ด้วยการเข้ารหัสผิด คำภาษาญี่ปุ่น (文字化け) ตัวอย่าง: 'café' เก็บเป็น UTF-8 แต่อ่านเป็น Latin-1 → 'café'
Python 3 uses Unicode strings by default (str = UTF-8 internally via PEP 393). Key features: \N{name} escapes, unicodedata module, …
Rust strings (str/String) are guaranteed valid UTF-8. char type represents a Unicode scalar value (4 bytes). Iteration via .chars() yields …
การเข้ารหัสแปลงอักขระเป็นไบต์ (str.encode('utf-8')); การถอดรหัสแปลงไบต์เป็นอักขระ (bytes.decode('utf-8')) การทำอย่างถูกต้องช่วยป้องกัน mojibake
"ความยาว" ของสตริง Unicode ขึ้นอยู่กับหน่วย: code unit (JavaScript .length), code point (Python len()) หรือ grapheme cluster 👨👩👧👦 = 7 code point, …
หน่วยโค้ด 16 บิตสองตัว (high surrogate U+D800–U+DBFF + low surrogate U+DC00–U+DFFF) ที่เข้ารหัสอักขระเสริมใน UTF-16 ร่วมกัน 😀 = D83D DE00
รูปแบบ regex ที่ใช้คุณสมบัติ Unicode: \p{L} (ตัวอักษรใดก็ได้), \p{Script=Greek} (อักษรกรีก), \p{Emoji} การรองรับแตกต่างกันตามภาษาและ regex engine
ไวยากรณ์สำหรับแทนอักขระ Unicode ในซอร์สโค้ด แตกต่างกันตามภาษา: \u2713 (Python/Java/JS), \u{2713} (JS/Ruby/Rust), \U00012345 (Python/C)
ลำดับของอักขระในภาษาโปรแกรม การแทนค่าภายในแตกต่างกัน: UTF-8 (Go, Rust, Python บิลด์ใหม่), UTF-16 (Java, JavaScript, C#) หรือ UTF-32 (Python)
U+FFFD (�) แสดงเมื่อตัวถอดรหัสพบลำดับไบต์ที่ไม่ถูกต้อง เป็นสัญลักษณ์สากลสำหรับ "มีบางอย่างผิดพลาดกับการถอดรหัส"
อักขระใดก็ตามที่ไม่มี glyph ที่มองเห็นได้: whitespace, อักขระความกว้างศูนย์, อักขระควบคุม และอักขระจัดรูปแบบ อาจก่อให้เกิดปัญหาด้านความปลอดภัย เช่น การปลอมแปลงและการลักลอบซ่อนข้อความ
U+0000 (NUL) อักขระ Unicode/ASCII ตัวแรก ใช้เป็นตัวสิ้นสุดสตริงใน C/C++ ความเสี่ยงด้านความปลอดภัย: null byte injection อาจตัดทอนสตริงในระบบที่มีช่องโหว่
ความปลอดภัย (10)
Exploiting Unicode bidirectional control characters to disguise malicious code or filenames. The 'Trojan Source' attack (CVE-2021-42574) uses bidi overrides to …
Exploiting Unicode normalization to bypass security filters. Input validated before normalization may change form after: 'fi' (U+FB01) normalizes to 'fi', …
U+200D ร้องขอให้อักขระที่อยู่ติดกันถูกเชื่อมต่อ สำคัญสำหรับลำดับ emoji (👩+ZWJ+💻=👩💻) ในอักษรอินดิก จะขอให้สร้างตัวเชื่อม อาจซ่อนขอบเขตข้อความได้ด้วย
U+200C ป้องกันการเชื่อมต่ออักขระที่อยู่ติดกัน จำเป็นสำหรับภาษาเปอร์เซีย/อาหรับเพื่อรูปแบบตัวอักษรที่ถูกต้อง และใช้ใน Devanagari เพื่อป้องกันการสร้างตัวเชื่อม
การระบุข้อความที่ผสมอักขระจากอักษรต่างกัน (เช่น ละตินผสมซีริลลิก) เป็นการป้องกันหลักจากการโจมตีแบบ homoglyph เบราว์เซอร์ใช้สิ่งนี้เพื่อเปิดใช้งานการแสดง Punycode
การใช้คุณสมบัติ Unicode เพื่อหลอกลวงผู้ใช้: homoglyph สำหรับโดเมนปลอม, bidi override สำหรับนามสกุลไฟล์ปลอม หรืออักขระที่มองไม่เห็นสำหรับข้อความที่ซ่อนอยู่
การใช้อักขระ bidirectional override ของ Unicode (U+202A–U+202E, U+2066–U+2069) เพื่อปลอมแปลงชื่อไฟล์หรือโค้ดที่เป็นอันตราย 'readmefdp.exe' แสดงเป็น 'readmeexe.pdf'
การใช้อักขระ Unicode ที่มีลักษณะคล้ายกันในชื่อโดเมนเพื่อปลอมแปลงเป็นเว็บไซต์ที่ถูกต้อง аpple.com (Cyrillic а) ดูเหมือน apple.com เบราว์เซอร์ป้องกันด้วยกฎการแสดง Punycode
คำศัพท์อย่างเป็นทางการของ Unicode สำหรับคู่อักขระที่อาจสับสนได้ทางสายตา กำหนดไว้ใน confusables.txt (UCD) กว้างกว่า homoglyph ครอบคลุมอักขระที่เพียงแค่คล้ายกัน ไม่ใช่แค่เหมือนกัน
อักขระจากอักษรต่างกันที่มีลักษณะเหมือนกันหรือคล้ายกันมาก เช่น 'a' ภาษาละตินกับ 'а' ภาษาซีริลลิก ใช้ในการโจมตีแบบ phishing, การปลอมแปลง และวิศวกรรมสังคม
อีโมจิ (6)
อักขระ Unicode แบบภาพที่มีต้นกำเนิดจากโทรศัพท์มือถือญี่ปุ่น ปัจจุบันมี emoji มากกว่า 3,790 ตัวใน block ต่างๆ (Emoticons, Misc Symbols & Pictographs, Transport ฯลฯ)
Multi-character emoji constructed by combining base emoji with modifiers, ZWJ characters, or variation selectors. Types include keycap sequences (#️⃣), flag …
Five Fitzpatrick scale modifiers (U+1F3FB–U+1F3FF, 🏻–🏿) that change human emoji skin color. Applied by appending the modifier after a base …
26 อักขระ (U+1F1E6–U+1F1FF, 🇦–🇿) ที่รวมกันเป็นคู่เพื่อสร้าง emoji ธงชาติตามรหัสประเทศ ISO 3166-1 🇺+🇸 = 🇺🇸
ตัวปรับโทนสีผิวตามมาตรฐาน Fitzpatrick (U+1F3FB–U+1F3FF) ที่เปลี่ยนสีผิวของ emoji มนุษย์โดยวางไว้ทันทีหลัง emoji มนุษย์หลัก
Emoji ที่สร้างโดยการเชื่อม emoji หลายตัวด้วย Zero Width Joiner (U+200D) 👨👩👧👦 = ผู้ชาย + ZWJ + ผู้หญิง + ZWJ + เด็กผู้หญิง + …