อภิธานศัพท์ Unicode

คำศัพท์ Unicode ที่จำเป็น 150 คำอธิบาย — ตั้งแต่พื้นฐานการเข้ารหัสอักขระจนถึงแนวคิดด้านความปลอดภัย

การเข้ารหัส (17)

ASCII

มาตรฐานรหัสข้อมูลของอเมริกา (American Standard Code for Information Interchange) การเข้ารหัส 7 บิตครอบคลุม 128 ตัวอักษร (0–127) ได้แก่ อักขระควบคุม ตัวเลข ตัวอักษรละติน และสัญลักษณ์พื้นฐาน

ASCII Art

Visual art created from text characters, originally limited to the 95 printable ASCII characters. Unicode expands the palette with box-drawing …

Base64

Binary-to-text encoding that represents binary data using 64 ASCII characters (A–Z, a–z, 0–9, +, /). Used for embedding binary data …

Big5

การเข้ารหัสอักษรจีนตัวเต็มที่ใช้ส่วนใหญ่ในไต้หวันและฮ่องกง เข้ารหัสอักขระ CJK ประมาณ 13,000 ตัว

EBCDIC

Extended Binary Coded Decimal Interchange Code รหัสเข้ารหัสของเมนเฟรม IBM ที่มีช่วงตัวอักษรไม่ต่อเนื่อง ยังคงใช้ในธนาคารและเมนเฟรมองค์กร

EUC-KR

การเข้ารหัสอักขระภาษาเกาหลีที่อิงตาม KS X 1001 แมปอักษรฮันกึลและฮันจาเป็นลำดับสองไบต์

GB2312 / GB18030

กลุ่มการเข้ารหัสอักษรจีนตัวย่อ: GB2312 (6,763 อักขระ) พัฒนาเป็น GBK แล้วเป็น GB18030 ซึ่งเป็นมาตรฐานแห่งชาติจีนที่บังคับใช้และเข้ากันได้กับ Unicode

ISO 8859

กลุ่มการเข้ารหัสไบต์เดี่ยว 8 บิตสำหรับกลุ่มภาษาต่างๆ ISO 8859-1 (Latin-1) เป็นพื้นฐานของ 256 จุดรหัสแรกของ Unicode

Shift JIS

การเข้ารหัสอักขระภาษาญี่ปุ่นที่ผสม ASCII/JIS Roman แบบไบต์เดี่ยวกับคันจิ JIS X 0208 แบบสองไบต์ ยังคงใช้งานในระบบญี่ปุ่นรุ่นเก่า

UCS-2

การเข้ารหัส 2 ไบต์แบบความยาวคงที่ที่ล้าสมัย ครอบคลุมเฉพาะ BMP (U+0000–U+FFFF) เป็นรุ่นก่อนของ UTF-16 ที่ไม่สามารถแสดงอักขระเสริมได้

UTF-16

การเข้ารหัส Unicode แบบความยาวแปรผันที่ใช้ 2 หรือ 4 ไบต์ (1 หรือ 2 หน่วยรหัส 16 บิต) ใช้ภายในโดย Java, JavaScript และ Windows

UTF-32

การเข้ารหัส Unicode แบบความยาวคงที่ที่ใช้ 4 ไบต์ต่ออักขระ ง่ายแต่ไม่ประหยัดพื้นที่ ใช้ภายในโดย Python 3 (CPython)

UTF-8

การเข้ารหัส Unicode แบบความยาวแปรผันที่ใช้ 1–4 ไบต์ต่ออักขระ เป็นการเข้ารหัสที่นิยมใช้มากที่สุดบนเว็บ (มากกว่า 98% ของเว็บไซต์) และรองรับ ASCII แบบย้อนหลังอย่างสมบูรณ์

Windows-1252

ชุดอักขระของ Microsoft ที่เป็น superset ของ ISO 8859-1 เพิ่มเครื่องหมายคำพูด em dash และสัญลักษณ์ยูโรในช่วง 0x80–0x9F เป็นการเข้ารหัส "Latin" แบบเดิมที่พบบ่อยที่สุด

การเข้ารหัสอักขระ

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

ชุดอักขระ IANA

รายการอย่างเป็นทางการของชื่อการเข้ารหัสอักขระที่ดูแลโดย IANA ใช้ในส่วนหัว HTTP Content-Type และ MIME (เช่น charset=utf-8)

เครื่องหมายลำดับไบต์

U+FEFF ที่วางไว้ที่ต้นสตรีมข้อความเพื่อระบุลำดับไบต์และการเข้ารหัส จำเป็นสำหรับ UTF-16/32 แต่เป็นทางเลือกและไม่แนะนำสำหรับ UTF-8

มาตรฐาน Unicode (25)

Basic Multilingual Plane (BMP)

ระนาบ 0 (U+0000–U+FFFF) ประกอบด้วยอักขระที่ใช้บ่อยที่สุด ได้แก่ Latin, Greek, Cyrillic, CJK, Arabic และสัญลักษณ์ส่วนใหญ่ อักขระในระนาบนี้พอดีกับหนึ่งหน่วยรหัส UTF-16

CJK

จีน ญี่ปุ่น และเกาหลี คำรวมสำหรับบล็อกอักษรจีน Han ที่รวมกันและอักษรที่เกี่ยวข้องใน Unicode CJK Unified Ideographs มีอักขระมากกว่า 20,992 ตัว

Han Unification

The process of mapping Chinese, Japanese, and Korean ideographs that share a common historical origin to a single Unicode code …

Hangul Jamo

The individual consonant and vowel components (jamo) of the Korean Hangul writing system. Unicode encodes both precomposed Hangul syllables (U+AC00–U+D7A3) …

ISO 10646 / Universal Character Set

มาตรฐานสากล (ISO/IEC 10646) ที่ซิงโครไนซ์กับ Unicode กำหนดชุดอักขระและจุดรหัสเดียวกัน แต่ไม่มีอัลกอริธึมและคุณสมบัติเพิ่มเติมของ Unicode

Unicode

มาตรฐานการเข้ารหัสอักขระสากลที่กำหนดหมายเลขเฉพาะ (จุดรหัส) ให้กับทุกอักขระในทุกระบบการเขียน เวอร์ชัน 16.0 มีอักขระที่กำหนดแล้ว 154,998 ตัว

Unicode Character Database (UCD)

คอลเลกชันไฟล์ข้อมูลที่อ่านได้ด้วยเครื่องซึ่งกำหนดคุณสมบัติอักขระ Unicode ทั้งหมด รวมถึง UnicodeData.txt, Blocks.txt, Scripts.txt และอื่นๆ

Unicode Standard Annex (UAX)

Normative or informative documents that are integral parts of the Unicode Standard. UAX#9 (Bidi Algorithm), UAX#11 (East Asian Width), UAX#15 …

Unicode Technical Report (UTR)

Informational documents published by the Unicode Consortium covering specific topics like security mechanisms (UTR#39), text segmentation (UTR#29), and line breaking …

ค่าสเกลาร์ Unicode

จุดรหัสใดๆ ยกเว้นจุดรหัส 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

การรับประกันว่าเมื่อกำหนดอักขระแล้ว จุดรหัสและชื่อจะไม่มีวันเปลี่ยนแปลง คุณสมบัติอาจได้รับการปรับปรุงแต่การกำหนดนั้นถาวร

พื้นที่รหัส

ช่วงทั้งหมดของจุดรหัส 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

องค์กรไม่แสวงหาผลกำไรที่พัฒนาและดูแล 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

เวอร์ชันหลักของ Unicode Standard แต่ละเวอร์ชันเพิ่มอักขระ อักษร และคุณสมบัติใหม่ เวอร์ชันปัจจุบันคือ Unicode 16.0 (กันยายน 2025)

ไม่ใช่อักขระ

จุดรหัสที่สงวนไว้อย่างถาวรสำหรับใช้ภายใน (รวม 66 จุด): U+FDD0–U+FDEF และ U+nFFFE/U+nFFFF สำหรับแต่ละระนาบ ใช้งานได้ในข้อความแต่ไม่ควรแลกเปลี่ยนภายนอก

คุณสมบัติ (19)

East Asian Width

Unicode property (UAX#11) classifying characters as Narrow, Wide, Fullwidth, Halfwidth, Ambiguous, or Neutral. Wide characters (CJK ideographs, katakana) occupy two …

Joining Type

Unicode property controlling how Arabic and Syriac characters connect to adjacent characters. Types include Right_Joining, Left_Joining, Dual_Joining, and Non_Joining.

Script Extensions

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)

Case Folding

Mapping characters to a common case form for case-insensitive comparison. More comprehensive than lowercasing: German ß → ss, Turkish İ …

Grapheme Cluster Boundary

Rules (UAX#29) for determining where one user-perceived character ends and another begins. Critical for cursor movement, text selection, and correctly …

NFC (Canonical Composition)

Normalization Form C: แยกส่วนแล้วรวมใหม่แบบ canonical ได้รูปแบบที่สั้นที่สุด แนะนำสำหรับการจัดเก็บและแลกเปลี่ยนข้อมูล เป็นรูปแบบมาตรฐานของเว็บ

NFD (Canonical Decomposition)

Normalization Form D: แยกส่วนอย่างสมบูรณ์โดยไม่รวมใหม่ ใช้โดยระบบไฟล์ macOS HFS+ é (U+00E9) → e + ◌́ (U+0065 + U+0301)

NFKC (Compatibility Composition)

Normalization Form KC: แยกส่วนแบบ compatibility แล้วรวมแบบ canonical รวมอักขระที่มีลักษณะคล้ายกัน (fi→fi, ²→2, Ⅳ→IV) ใช้สำหรับการเปรียบเทียบตัวระบุ

NFKD (Compatibility Decomposition)

Normalization Form KD: แยกส่วนแบบ compatibility โดยไม่รวมใหม่ เป็นการ normalize ที่เข้มงวดที่สุด สูญเสียข้อมูลการจัดรูปแบบมากที่สุด

String Comparison

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 unicode-range

CSS @font-face descriptor specifying which Unicode code points a font should cover. Enables downloading only the font subset needed for …

Em / En (หน่วยวรรณศิลป์)

Em: ความกว้างเท่ากับขนาดฟอนต์ En: ครึ่งหนึ่งของ em ใช้กำหนดความกว้างของ em dash, em space, en space และหน่วย CSS (1em, 0.5em)

Font Fallback

The mechanism by which a rendering engine substitutes glyphs from a secondary font when the primary font lacks coverage for …

OpenType

Modern font format developed by Microsoft and Adobe supporting up to 65,535 glyphs, advanced typographic features (ligatures, alternates, kerning), and …

RTL (Right-to-Left)

ทิศทางของข้อความที่อักขระไหลจากขวาไปซ้าย ใช้กับภาษาอาหรับ ฮีบรู Thaana และอักษรอื่นๆ ต้องใช้อัลกอริทึม Bidirectional เพื่อแสดงผลอย่างถูกต้อง

Web Fonts

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)

Character Palette

A system-level tool for browsing and inserting Unicode characters. macOS Character Viewer (Ctrl+Cmd+Space), Windows Character Map (charmap.exe), and Linux gucharmap …

Input Method Editor (IME)

ส่วนประกอบซอฟต์แวร์ที่ช่วยให้ป้อนอักขระที่ซับซ้อน (CJK ภาษาเกาหลี ฯลฯ) ด้วยแป้นพิมพ์มาตรฐาน แปลงลำดับการกดแป้นเป็นอักขระผ่านการจับคู่แบบสัทศาสตร์หรือโครงสร้าง

การป้อนเลขฐานสิบหก

การป้อน code point Unicode โดยตรงด้วยการพิมพ์ค่า hex Mac: กด Option ค้างไว้ + hex + ปล่อย Windows: พิมพ์ hex แล้วกด Alt+X ใน …

คีย์ตาย

แป้นที่ไม่ผลิตผลลัพธ์ทันทีแต่ปรับเปลี่ยนการกดแป้นถัดไป ใช้สำหรับเครื่องหมายกำกับเสียง: กด ` แล้วกด e จะได้ è พบทั่วไปในรูปแบบแป้นพิมพ์ยุโรป

ตัวเลือกอักขระ

ส่วนประกอบ UI (แบบ native หรือบนเว็บ) สำหรับเรียกดูและเลือกอักขระด้วยสายตา ตัวเลือก emoji บนอุปกรณ์มือถือเป็นตัวอย่างที่พบบ่อยที่สุด

ปุ่ม Compose

แป้น (มักเป็น Alt ขวาหรือที่กำหนดเอง) ที่เริ่มลำดับการรวมหลายแป้น เป็นคุณสมบัติของ Linux/Unix: Compose + a + e → æ สามารถกำหนดค่าได้ผ่าน XCompose

รหัส Alt

วิธีการป้อนข้อมูลของ Windows โดยใช้ Alt + ตัวเลขจาก numpad เพื่อพิมพ์อักขระตามหมายเลขหน้าโค้ด (Alt+0169 → ©, Alt+0176 → °) จำกัดอยู่ที่อักขระของหน้าโค้ด 1252

วิธีการป้อน Unicode

วิธีการใดก็ตามในการป้อนอักขระโดยใช้ 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 Text Direction

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 สามรูปแบบ: ชื่อ (&), ทศนิยม (&), เลขฐานสิบหก (&) จำเป็นสำหรับอักขระที่ขัดแย้งกับไวยากรณ์ HTML

Internationalized Domain Name (IDN)

ชื่อโดเมนที่มีอักขระ Unicode ที่ไม่ใช่ ASCII เก็บไว้ภายในเป็น Punycode (xn--...) แต่แสดงเป็น Unicode ให้ผู้ใช้เห็น ความกังวลด้านความปลอดภัย: การโจมตีแบบ homograph

JavaScript Intl API

ECMAScript Internationalization API providing locale-aware string comparison (Collator), number formatting (NumberFormat), date formatting (DateTimeFormat), and segmentation (Segmenter).

Punycode

การเข้ารหัสที่เข้ากันได้กับ ASCII สำหรับชื่อโดเมน Unicode แปลงป้ายกำกับที่ถูก internationalize เป็นสตริง ASCII ที่มีคำนำหน้า xn-- münchen.de → xn--mnchen-3ya.de

Unicode in CSS

CSS supports Unicode via escape sequences (\2713 for ✓), the content property for generated text, unicode-range for font subsetting, and …

การอ้างอิงอักขระ XML

เวอร์ชัน XML ของการอ้างอิงอักขระเชิงตัวเลข: ✓ หรือ ✓ XML มีเพียง 5 entity ที่มีชื่อ (& < > " ') ในขณะที่ HTML5 มี 2,231 …

การอ้างอิงอักขระที่มีชื่อ

HTML entity ที่ใช้ชื่อที่อ่านง่าย: © → ©, — → — HTML5 กำหนด 2,231 การอ้างอิงแบบมีชื่อ และทั้งหมดคำนึงถึงตัวพิมพ์เล็ก-ใหญ่

การอ้างอิงอักขระเชิงตัวเลข

HTML entity ที่ใช้หมายเลข code point Unicode: ทศนิยม (© → ©) หรือเลขฐานสิบหก (© → ©) ใช้ได้กับอักขระ Unicode ทุกตัว ต่างจากการอ้างอิงแบบมีชื่อ

การเข้ารหัสเปอร์เซ็นต์ (URL encoding)

การเข้ารหัสอักขระที่ไม่ใช่ 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 content

คุณสมบัติ CSS ที่แทรกเนื้อหาที่สร้างขึ้นผ่าน pseudo-element ::before และ ::after โดยใช้ Unicode escape: content: "\2713" แทรก ✓

ชุดอักขระ Content-Type

พารามิเตอร์ 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 Unicode

Java strings use UTF-16 internally. char is 16-bit (only BMP). For supplementary characters, use codePointAt() and Character.toChars(). Java's \uXXXX escapes …

Mojibake

ข้อความที่เสียหายจากการถอดรหัสไบต์ด้วยการเข้ารหัสผิด คำภาษาญี่ปุ่น (文字化け) ตัวอย่าง: 'café' เก็บเป็น UTF-8 แต่อ่านเป็น Latin-1 → 'café'

Python Unicode

Python 3 uses Unicode strings by default (str = UTF-8 internally via PEP 393). Key features: \N{name} escapes, unicodedata module, …

Rust Unicode

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

นิพจน์ทั่วไป Unicode

รูปแบบ regex ที่ใช้คุณสมบัติ Unicode: \p{L} (ตัวอักษรใดก็ได้), \p{Script=Greek} (อักษรกรีก), \p{Emoji} การรองรับแตกต่างกันตามภาษาและ regex engine

ลำดับ escape ของ Unicode

ไวยากรณ์สำหรับแทนอักขระ 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)

Bidi Text Attack

Exploiting Unicode bidirectional control characters to disguise malicious code or filenames. The 'Trojan Source' attack (CVE-2021-42574) uses bidi overrides to …

Normalization Attack

Exploiting Unicode normalization to bypass security filters. Input validated before normalization may change form after: 'fi' (U+FB01) normalizes to 'fi', …

Zero Width Joiner (ZWJ)

U+200D ร้องขอให้อักขระที่อยู่ติดกันถูกเชื่อมต่อ สำคัญสำหรับลำดับ emoji (👩+ZWJ+💻=👩‍💻) ในอักษรอินดิก จะขอให้สร้างตัวเชื่อม อาจซ่อนขอบเขตข้อความได้ด้วย

Zero Width Non-Joiner (ZWNJ)

U+200C ป้องกันการเชื่อมต่ออักขระที่อยู่ติดกัน จำเป็นสำหรับภาษาเปอร์เซีย/อาหรับเพื่อรูปแบบตัวอักษรที่ถูกต้อง และใช้ใน Devanagari เพื่อป้องกันการสร้างตัวเชื่อม

การตรวจจับสคริปต์ผสม

การระบุข้อความที่ผสมอักขระจากอักษรต่างกัน (เช่น ละตินผสมซีริลลิก) เป็นการป้องกันหลักจากการโจมตีแบบ homoglyph เบราว์เซอร์ใช้สิ่งนี้เพื่อเปิดใช้งานการแสดง Punycode

การปลอมแปลง Unicode

การใช้คุณสมบัติ Unicode เพื่อหลอกลวงผู้ใช้: homoglyph สำหรับโดเมนปลอม, bidi override สำหรับนามสกุลไฟล์ปลอม หรืออักขระที่มองไม่เห็นสำหรับข้อความที่ซ่อนอยู่

การโจมตี bidi override

การใช้อักขระ bidirectional override ของ Unicode (U+202A–U+202E, U+2066–U+2069) เพื่อปลอมแปลงชื่อไฟล์หรือโค้ดที่เป็นอันตราย 'readme‮fdp.exe' แสดงเป็น 'readmeexe.pdf'

การโจมตี IDN homograph

การใช้อักขระ Unicode ที่มีลักษณะคล้ายกันในชื่อโดเมนเพื่อปลอมแปลงเป็นเว็บไซต์ที่ถูกต้อง аpple.com (Cyrillic а) ดูเหมือน apple.com เบราว์เซอร์ป้องกันด้วยกฎการแสดง Punycode

อักขระที่สับสนได้

คำศัพท์อย่างเป็นทางการของ Unicode สำหรับคู่อักขระที่อาจสับสนได้ทางสายตา กำหนดไว้ใน confusables.txt (UCD) กว้างกว่า homoglyph ครอบคลุมอักขระที่เพียงแค่คล้ายกัน ไม่ใช่แค่เหมือนกัน

โฮโมไกลฟ์

อักขระจากอักษรต่างกันที่มีลักษณะเหมือนกันหรือคล้ายกันมาก เช่น 'a' ภาษาละตินกับ 'а' ภาษาซีริลลิก ใช้ในการโจมตีแบบ phishing, การปลอมแปลง และวิศวกรรมสังคม

อีโมจิ (6)

Emoji

อักขระ Unicode แบบภาพที่มีต้นกำเนิดจากโทรศัพท์มือถือญี่ปุ่น ปัจจุบันมี emoji มากกว่า 3,790 ตัวใน block ต่างๆ (Emoticons, Misc Symbols & Pictographs, Transport ฯลฯ)

Emoji Sequences

Multi-character emoji constructed by combining base emoji with modifiers, ZWJ characters, or variation selectors. Types include keycap sequences (#️⃣), flag …

Emoji Skin Tone

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 มนุษย์หลัก

ลำดับ ZWJ ของอีโมจิ

Emoji ที่สร้างโดยการเชื่อม emoji หลายตัวด้วย Zero Width Joiner (U+200D) 👨‍👩‍👧‍👦 = ผู้ชาย + ZWJ + ผู้หญิง + ZWJ + เด็กผู้หญิง + …

เบ็ดเตล็ด (1)