יוניקוד

יוּנִיקוֹד (באנגלית: 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+&lrm;). לדוגמה, האות העברית "א" ידועה בשם HEBREW LETTER ALEF או U+05D0.

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

{| class="mw-collapsible mw-collapsed autocollapse" style="border: 1px #aaaaaa solid; background-color: #f9f9f9; font-size: 95%; clear: both; width: 90%; margin: 0.5em auto;" cellspacing = "3"
|-
! colspan="2" style="background-color: #ccccff; height: 2em; padding-top: 0.1em; padding-bottom: 0.1em; text-align: center; color: black; font-weight: bold;" | פירוט טווחים של יוניקוד
|- style="vertical-align: top;"
| style="width=50%;" |
{| class="wikitable" style="align: center; margin-left: auto; margin-right: auto;"
! טווח !! בלוק
|-
| 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 || צורות הנדסיות
|}
|
{| class="wikitable" style="align: center; margin-left: auto; margin-right: auto;"
! טווח !! בלוק
|-
| 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 || אזור שימוש פרטי משלים ב'
|}
|}

==ראו גם==
* אלגוריתם דו־כיווניות של יוניקוד
* קידוד תווים
* ASCII
* BOM

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

* 
* 
* [http://www.unicode.org האתר של ארגון יוניקוד]
* [https://web.archive.org/web/20140312143430/http://www.decodeunicode.org/ decodeunicode] 50.000 gifs.
*[https://medium.com/bobble-engineering/emojis-from-a-programmers-eye-ca65dc2acef0 כיצד מקודד אימוג'י] ב-יוניקוד

קטגוריה:קידוד תווים