לדלג לתוכן

יוניקוד

מתוך ויקיפדיה, האנציקלופדיה החופשית

יוּנִיקוֹדאנגלית: 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 אזור שימוש פרטי משלים ב'

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

[עריכת קוד מקור | עריכה]