יוניקוד

יוּנִיקוֹדאנגלית: Unicode) הוא תקן בין־לאומי לייצוג טקסט במערכות מחשב. התקן מגדיר מערכת תווים המקיפה את כל מערכות הכתב הנמצאות כיום בשימוש פעיל בשפות העולם, וכן מערכות כתב ותווים נוספים שבהם נעשה שימוש בתחומים מדעיים וטכניים, כגון מתמטיקה ובלשנות.בנוסף מגדיר התקן כללים לייצוג צירופים של תווים שונים (כגון אות לטינית שעליה סימן אקצנט, או אות עברית שעליה סימן ניקוד), וכללים לייצוג והצגה של טקסט דו־כיווני (הכולל קטעים במערכת כתב הנכתבת משמאל לימין ובכזו הנכתבת מימין לשמאל). הגרסה הראשונה של התקן פורסמה בשנת 1988. נכון לספטמבר 2021 הגרסה האחרונה היא 14.0.

מערכות הפעלה מודרניות כדוגמת Windows החל מ־Windows 2000, הגרסאות החדשות של לינוקס ו־OSX, מערכת ההפעלה של אפל, כולן עושות שימוש בתקן יוניקוד. מערכות ההפעלה הראשונות שתמכו ביוניקוד היו Windows NT על כל גרסאותיהן ו־Plan9, שהיא מערכת מבוססת יוניקס.

תקן מקובל לייצוג טקסט לפני יוניקוד היה ASCII, שייצג את האלפבית הלטיני הפשוט (ללא אקצנטים וכולי), מספרים וסימני פיסוק בקידוד של 7 סיביות. כדי לתמוך בתווים נוספים הורחב ייצוג זה לקידוד של 8 סיביות, שכל אחד מהם הכיל 256 תווים: 128 תווי ASCII ו־128 תווים אחרים לפי האזור. כך למשל, המספר 224 הכיל את האות à בקידוד של מערב אירופה ואת האות א בקידוד העברי. דבר זה גרם לבעיות בהעברה של טקסט ממערכות שונות. ב־1990 התכנסו חברות תוכנה ותקשורת עולמיות כדי לפתור את הבעיה וכך החלה התקינה של יוניקוד.

תחילה (כלומר עד לגרסה 2.0) התבסס יוניקוד על קידוד של 16 סיביות, היכול להכיל 65,536 תווים. לאחר שתוקנו תווים רבים לצורכי תאימות (כגון הברות קוריאניות), היה ברור כי אין זה מספר מספיק לכל הצרכים העולמיים, וגרסה 2.0 של יוניקוד הורחבה להכיל 1,112,064 תווים באמצעות מנגנון UTF-16, שבו 2048 קודים מנוצלים כדי לייצג יותר ממיליון תווים. בגרסה 3.1 של יוניקוד הותקנו התווים הראשונים מעבר לתחום ה־65,536 העליונים (המשטח הרב־לשוני הבסיסי), וקידוד יוניקוד ניתן לבצע באחת משלוש צורות: UTF-8‏, UTF-16 ו־UTF-32. הראשונה משמשת באינטרנט ובלינוקס, השנייה בג'אווה ובחלונות, והאחרונה בתור קידוד פנימי (בתוך הזיכרון) של מערכות יוניקס מסוימות.

תקן היוניקוד מוסיף נדבך קטן בהפיכתו של העולם לכפר גלובלי קטן בשל העובדה שיש מערכת קידוד אחידה שאפשר להשתמש בה בכל העולם. הדבר מקל במיוחד על אנשים הנוסעים ברחבי העולם, היכולים כמעט בכל מחשב לכתוב בשפתם. כמו גם החלפת תכתובות באינטרנט בין אנשים דוברי שפות שונות מרחבי העולם.

אוצר התווים של יוניקוד

כל תו ביוניקוד הוא בעל שם ומספר סידורי (שאותו נהוג לציין בבסיס הקסדצימלי עם הקידומת U+‎). לדוגמה, האות העברית "א" ידועה בשם HEBREW LETTER ALEF או U+05D0.

כאשר קונסורציום יוניקוד מוסיף תו חדש לתקן, מספרו הסידורי מוקצה מתוך אחד מהבלוקים הבאים, בהתאם להשתייכותו. להלן הבלוקים נכון לגרסה 4.0 של התקן וטווחיהם המספריים (מצוינים בבסיס הקסדצימלי):

פירוט טווחים של יוניקוד
טווחבלוק
0000-007Fלטינית בסיסית
0080-00FFהשלמה של Latin-1
0100-017Fלטינית מורחבת א'
0180-024Fלטינית מורחבת ב'
0250-02AFהרחבות לאלפבית הפונטי הבינלאומי
02B0-02FFתווים משני מרווח
0300-036Fסימנים מבחינים מתחברים
0370-03FFיוונית וקופטית
0400-04FFקירילית
0500-052Fהשלמה של קירילית
0530-058Fארמנית
0590-05FFעברית
0600-06FFערבית
0700-074Fסורית
0780-07BFת'אנה
0900-097Fדוונגרי
0980-09FFבנגלית
0A00-0A7Fגורמוכי
0A80-0AFFגוג'ראטי
0B00-0B7Fאורייה
0B80-0BFFטמילית
0C00-0C7Fטלוגו
0C80-0CFFקאנדה
0D00-0D7Fמלאיאלאם
0D80-0DFFסינהלה
0E00-0E7Fתאית
0E80-0EFFלאו
0F00-0FFFטיבטית
1000-109Fמיאנמר (בורמזית)
10A0-10FFגאורגית
1100-11FFג'אמו (יסודות מתחברים) של הנגול (קוריאנית)
1200-137Fאתיופית
13A0-13FFצ'רוקי
1400-167Fהברות קנדיות ילידיות מאוחדות
1680-169Fאוגם (כתב אירי עתיק)
16A0-16FFרונית
1700-171Fטאגאלוג
1720-173Fהנונואו
1740-175Fבוהיד
1760-177Fטגבאנווה
1780-17FFח'מר
1800-18AFמונגולית
1900-194Fלימבו
1950-197Fטאי לה
19E0-19FFסמלים לח'מר
1D00-1D7Fהרחבות פונטיות
1E00-1EFFלטינית מורחבת נוספת
1F00-1FFFיוונית מורחבת
2000-206Fפיסוק כללי
2070-209Fתווים עיליים ותחתיים
20A0-20CFסמלי מטבע
20D0-20FFסימנים מבחינים מתחברים בשביל סמלים
2100-214Fסמלים דמויי אותיות
2150-218Fצורות מספרים
2190-21FFחצים
2200-22FFאופרטורים מתמטיים
2300-23FFסימנים טכניים שונים
2400-243Fתמונות של תווי בקרה
2440-245Fסימנים לסורקי כתב (OCR)
2460-24FFסימנים אלפאנומריים מוסגרים
2500-257Fסרטוט קופסאות
2580-259Fיסודות של בלוקים
25A0-25FFצורות הנדסיות
טווחבלוק
2600-26FFסמלים שונים
2700-27BFקישוטים
27C0-27EFסמלים מתמטיים שונים א'
27F0-27FFהשלמה של חצים א'
2800-28FFתרשימי כתב ברייל
2900-297Fהשלמה של חצים ב'
2980-29FFסמלים מתמטיים שונים ב'
2A00-2AFFהשלמה של סמלים מתמטיים
2B00-2BFFסמלים וחצים שונים
2EB0-2EFFהשלמה של שורשי כתב סיני
2F00-2FDFשורשי קנגשי
2FF0-2FFFתווים לתיאור אידיאוגרפי
3000-303Fסימני פיסוק לסינית, יפנית וקוריאנית
3040-309Fהירגאנה (הברות יפניות)
30A0-30FFקטקאנה (הברות יפניות)
3100-312Fבופומופו (תווים ללימוד סינית)
3130-318Fג'אמו של הנגול לתאימות
3190-319Fקאנבון
31A0-31BFבופומופו מורחב
31F0-31FFהרחבות פונטיות לקטקאנה
3200-32FFתווים וחודשים מוסגרים לסינית, יפנית וקוריאנית
3300-33FFתאימות לסינית, יפנית וקוריאנית
3400-4DBFאידאוגרמות סיניות מאוחדות, הרחבה א'
4DC0-4DFFסמלי הקסגרמה של יִיגִ'ינְג
4E00-9FFFאידאוגרמות סיניות מאוחדות
A000-A48Fהברות יי
A490-A4CFשורשי יי
AC00-D7AFהברות הנגול (קוריאנית)
D800-DB7Fממלאי מקום גבוהים (ראו UTF-16)
DB80-DBFFממלאי מקום גבוהים לשימוש פרטי
DC00-DFFFממלאי מקום נמוכים
E000-F8FFאזור שימוש פרטי
F900-FAFFאידאוגרמות סיניות לתאימות
FB00-FB4Fצורות תצוגה לאלפבית
FB50-FDFFצורות תצוגה לערבית א'
FE00-FE0Fבוררי צורות משנה
FE20-FE2Fחצאי סימנים מתחברים
FE30-FE4Fצורות תאימות לסינית, יפנית וקוריאנית
FE50-FE6Fצורות משנה קטנות
FE70-FEFFצורות תצוגה לערבית ב'
FF00-FFEFצורות לאורך חצוי ואורך מלא
FFF0-FFFFמיוחדים
10000-1007Fהברות של כתב ליניארי B
10080-100FFאידאוגרמות של כתב ליניארי B
10100-1013Fמספרים אגאיים
10300-1032Fאיטאלית עתיקה
10330-1034Fגותית
10380-1039Fאוגריתית
10400-1044Fדזרט (כתב מורמוני)
10450-1047Fשאוויאנית (הכתב שהמציא ג'ורג' ברנרד שו)
10480-104AFאוסמאניה
10800-1083Fהברות קפריסאיות
1D000-1D0FFסמלים מוזיקליים ביזנטיים
1D100-1D1FFסמלים מוזיקליים
1D300-1D35Fסמלי טאי שואן ג'ינג
1D400-1D7FFסמלים מתמטיים אלפאנומריים
20000-2A6DFאידאוגרמות סיניות מאוחדות, הרחבה ב'
2F800-2FA1Fהשלמה של אידאוגרמות סיניות לתאימות
E0000-E007Fתגים
E0100-E01EFהשלמה של בוררי צורות משנה
F0000-FFFFFאזור שימוש פרטי משלים א'
100000-10FFFFאזור שימוש פרטי משלים ב'

ראו גם

קישורים חיצוניים