תקן יוּנִיקוֹד (Unicode) הוא תקן בין-לאומי אחיד הקובע הקצאת מספרים לתווים מכל כתבי העולם. בדרך-כלל השם יוניקוד מתייחס לתקן הרב-לשוני הבסיסי של 65536 תווים, אף כי יש תקן גדול יותר הכולל אותו, ISO-10646, בעל מקום להרבה יותר תווים. תקן יוניקוד קובע 16 ספרות בינאריות (2 בייט) לתו, ומכאן המקום לכל כתבי העולם, כולל סינית, אשר לה אלפי סימנים. יוניקוד קובע גם את דרך הטיפול בכתבים מורכבים, בין השאר כתבים דו-כיווניים כעברית וערבית. המערכת הראשונה שנבנתה מן היסוד עם תמיכת יוניקוד היא Plan 9, שמוצאה מ-Unix. מיקרוסופט שילבה תמיכת יוניקוד ב-Windows NT החל מגרסתה הראשונה, 3.1, ומערכת Windows 2000 (שהיא למעשה גרסה 5 של Windows NT) עובדת על יוניקוד באופן מלא ומיישמת את אלגוריתם הדו-כיווניות של תקן יוניקוד לעברית וערבית.
המיקום של האותיות העבריות במפת התווים האחת והיחידה של יוניקוד אינו חשוב, משום שאין אפשרות להתנגשות עם תווים אחרים (האות א' מספרה 1488, לשם דוגמא). מכיוון שאין התנגשות בין התווים, אפשר לכתוב בכמה שפות על מסמך אחד, למשל בצורה הזו (בגרסת ISO-Visual של המסמך השתמשתי בתמונה, כמובן):
Καλημέρα (יוונית)
С добрым утром (רוסית)
صباح الخير (ערבית)
כל המשפטים האלה, "בוקר טוב" ביוונית, ברוסית ובערבית בהתאמה*, מופיעים כאן על מסמך אחד, בקידוד של יוניקוד. זאת להבדיל מדפי הקוד של DOS ושל ISO, שמאפשרים רק שפה אחת בנוסף לאנגלית. ולא רק בשילוב שפות מועיל יוניקוד, אלא גם בהוספת סימנים (כמו למשל החיצים בפרק על הכיווניות, או פרצופים מחייכים, וכן סמלים מתמטיים).
מכיוון שלא חסר מקום, הוקצה בעברית מקום לא רק לניקוד אלא גם לטעמי המקרא. מובן שאין אפשרות להציג את טעמי המקרא ללא גופנים תומכים. טעמי המקרא אין עושים בהם שימוש רב באופן רגיל, ועל-כן אפשר להציג אותם רק בתוכנות מיוחדות. אבל לפחות קידודם פשוט יותר מאשר בעבר. החשוב הוא שהמיפוי של העברית, כולל הניקוד, חובר על דגם דף הקוד של העברית של Windows, ולכן יש תאימות רבה ביניהם.
העברית של יוניקוד לעולם משתמעת ולא חזותית, משום שאין מקום לשיטה החזותית בתקן חדיש. אלגוריתם הדו-כיווניות של יוניקוד שונה במקצת מזה המיושם ב-Windows (למשל, בעיית הקלדת מספרי הטלפון עם קידומת ומקף אינה מצויה ב-Windows עברי, אך כן מצויה בעברית של Windows 2000). אפשר להתגבר על בעיות מסויימות בכיווניות בעזרת התווים הנסתרים (אשר דובר עליהם בפרק על הכיווניות), אף כי יש מקום לשיפור בידידותיות למשתמש (הרי לא מצפים שהמשתמש הממוצע ידע על תווי LRE ו-PDF).
האחסון הטבעי של יוניקוד הוא בסדרות עוקבות של 2 בייט, אך תוכנות רבות שנבנו על הנחת עבודה עם בייט אחד אינן פועלות כשורה עם יוניקוד נורמלי. לכן הומצא קידוד הממיר את סדרות הבייטים הכפולים לסדרות של בייטים יחידים בעלי אורך משתנה, בהתאם לקידוד התו. לא אכנס לדיון על הקידוד הזה משום שהוא מסובך מדי (אפשר לקרוא עליו בהרחבה באתר של רומן צ'יבורה), אך יש לדעת כי הוא נקרא UTF-8 ומשמש בין השאר למסמכי אינטרנט המקודדים ביוניקוד (כמו כל מסמכי העברית המשתמעת באתר הזה). על הטיפול ביוניקוד נורמלי, UTF-8 ושאר בעיות ארחיב בפרק על Windows 2000.
נכון לכתיבת שורות אלה (אוגוסט 2001) אין השימוש בעברית של יוניקוד נפוץ; רוב המסמכים בעברית מקודדים בעברית משתמעת של Windows (קידוד ISO), אם כי מעבד התמלילים Word 2000 כבר עובד על בסיס יוניקוד. כמעט כל קובצי הטקסט הם בעברית של Windows, ורוב אתרי האינטרנט הם בעברית חזותית בקידוד ISO. מערכת Windows 2000 לא נועדה למשתמש הביתי, אך הגרסה הבאה, Windows XP, נועדה לכל השוק, וסביר להניח שהיא תגרום למשתמשים לכתוב בעברית של יוניקוד בלבד. אני מקווה שכך יהיה, משום שצעד זה יפתור את הרוב הגדול של בעיות העבודה בעברית במחשבים. עדיין אפשר יהיה לקרוא עברית של גרסאות Windows הקודמות באמצעות Internet Explorer, ותוך כדי כך כדאי יהיה להמיר אותה לעברית של יוניקוד (על-ידי פעולה פשוטה של העתקה והדבקה).
*בחרתי במשפטי דוגמא רגילים מהשפות הללו; רק ערבית אני יודע ממש.
[הקודם] [תוכן העניינים] [הבא]