מערכת ההפעלה Windows 2000 מלאה יכולות מתקדמות לטיפול בשפות. עיבוד הטקסט בה מבוסס כולו על יוניקוד ולא על דפי קוד ישנים. כל גרסאותיה בנויות מאותו קוד מקור, ובעלות כל המנגנונים לטיפול בשפות: דו-כיווניות לשפות שמיות, כלים להזנת שפות מרובות-סימנים כסינית ויפאנית, וכו'. כל גרסה של Windows 2000, בין שהיא תחנת עבודה ובין שהיא שרת, מסוגלת לקרוא ולכתוב באותו מספר של שפות; אין על המשתמש אלא להתקין את התמיכה בהן מתוך התקליטור.
גרסת תחנת העבודה, Windows 2000 Professional, באה גם בגרסאות שונות בהתאם לשפת הממשק. כפי שציינתי קודם, אין גרסאות Enabled נפרדות ל-Windows 2000, מכיוון שכולן בבחינת Enabled. גרסה אנגלית של Windows 2000 משמעה מערכת עם ממשק אנגלי; מערכת זו מסוגלת לתמוך בעברית, בערבית, ברוסית, בסינית ועוד שפות רבות לפי דרישת המשתמש, ואכן במערכת כזו בניתי את האתר הזה. גרסה עברית של Windows 2000 פירושה מערכת עם ממשק עברי, עם כפתורים הפוכים כמו בגרסת Localized של Windows 98; היא תומכת בכל השפות שהגרסה האנגלית תומכת בהן. בנוסף יש גרסת Multilanguage שבה ניתן לשנות את שפת ממשק המשתמש. זו זמינה רק ברישיון מיוחד, לעסקים מסודרים, ולא במכירה ישירה ללקוחות מן השורה.
ניתן להתקין שפות נוספות במערכת כבר בשלב התקנתה על המחשב. אחרי ההתקנה אפשר לעשות זאת מתוך לוח הבקרה. יש להיכנס למערכת בתור מנהל (Administrator); משתמש רגיל אינו יכול להתקין תמיכה לשפות נוספות.
סימון התיבות בחלק התחתון של החלון ולחיצה על OK או Apply גורם להתקנת התמיכה בשפות הנוספות. התמיכה מותקנת מתוך התקליטור של Windows 2000 ולאחריה יש לאתחל את המחשב מחדש. התקנת התמיכה אינה מחייבת שימוש בשפות; כל משתמש חופשי להתקין ולהסיר מפות מקלדת כפי רצונו. בלחיצה על כפתור Advanced מופיע החלון הבא:
ובו אפשרות להתקנת טבלאות מיפוי לקידודים נוספים. מי שעוסק הרבה בהמרה של קובצי טקסט מקידוד לקידוד כדאי לו לסמן את כל התיבות. התקנה זו אינה דורשת אתחול.
המערכת כפי שהיא אצלי עכשיו מכוונת לעבוד עם שפות רבות ביוניקוד, ועם דף הקוד של מערב-אירופה ב-Windows (שמספרו 1252) בקידוד של בייט יחיד (קידוד ANSI, הקידוד בעל 256 המקומות), ועם דף הקוד של ארצות-הברית בחלון DOS (שמספרו 437). פירוש הדבר שאם הטקסט שלי ב-Notepad מכיל רק מהתווים האלה:
| # | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
| 0 | ||||||||||||||||
| 1 | ||||||||||||||||
| 2 | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / | |
| 3 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
| 4 | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
| 5 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
| 6 | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
| 7 | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | |
| 8 | € | ‚ | ƒ | „ | … | † | ‡ | ˆ | ‰ | Š | ‹ | Œ | Ž | |||
| 9 | ‘ | ’ | “ | ” | • | – | — | ˜ | ™ | š | › | œ | ž | Ÿ | ||
| A | ¡ | ¢ | £ | ¤ | ¥ | ¦ | § | ¨ | © | ª | « | ¬ | | ® | ¯ | |
| B | ° | ± | ² | ³ | ´ | µ | ¶ | · | ¸ | ¹ | º | » | ¼ | ½ | ¾ | ¿ |
| C | À | Á | Â | Ã | Ä | Å | Æ | Ç | È | É | Ê | Ë | Ì | Í | Î | Ï |
| D | Ð | Ñ | Ò | Ó | Ô | Õ | Ö | × | Ø | Ù | Ú | Û | Ü | Ý | Þ | ß |
| E | à | á | â | ã | ä | å | æ | ç | è | é | ê | ë | ì | í | î | ï |
| F | ð | ñ | ò | ó | ô | õ | ö | ÷ | ø | ù | ú | û | ü | ý | þ | ÿ |
אז יש באפשרותי לשמור את הקובץ בקידוד ANSI, של בייט אחד לכל תו. בשמירה של Notepad יש ארבע אפשרויות:
הראשון, ANSI, הוא קידוד של בייט יחיד, הקודם ליוניקוד והמצוי במערכות Windows האחרות. האפשרות השנייה, Unicode, שומרת את הטקסט בשני בייט לכל תו, בקידוד שבו Windows 2000 מטפלת באופן רגיל. האפשרות השלישית היא שמירה ב-Unicode למען מחשבים בעלי מעבדים עם סדר בייטים שונה (לא ניכנס לעניין זה; די לציין שמעבדי Intel מסדרים את הבייטים באופן שונה מהמעבדים של המקינטושים ושל רוב תחנות Unix); אין לה שימוש רב. האפשרות הרביעית, UTF-8, שומרת את התווים בקידוד של יוניקוד לסדרות של בייטים באורך משתנה (בייט אחד, שני בייטים או שלושה בהתאם לשפה שבה נמצא התו; תווים עבריים תופסים שני בייטים) המתאים למשל לאתרי אינטרנט.
אם בקובץ הטקסט יש תו אחד שאינו מצוי בטבלה שלמעלה, אז כשאשמור את הקובץ תופיע התיבה הבאה:
ואז יש ללחוץ על Cancel ולשמור את הקובץ בכל קידוד חוץ מ-ANSI. אם שומרים אותו בקידוד ANSI יהפכו התווים הזרים לסימני שאלה. אם כן, כדי לשמור טקסט עברי תחת מערכת Windows 2000 המכוונת לעבוד באנגלית (או שפה אחרת) כשפת המערכת, יש לשמור בקידוד Unicode (או UTF-8, שהוא רק פריסה שונה של Unicode).
ודאי שיש דרכים לעבוד עם עברית של Windows (שהיא בקידוד ANSI) גם כשהמערכת מכוונת על אנגלית כברירת מחדל (באמצעות Internet Explorer וחלון שורת הפקודה, כפי שאסביר אחר-כך). אך אפשר לעבוד עם עברית כאילו הייתה זו מערכת Enabled של עברית לכל דבר, כאילו עובדים בגרסה עברית של Windows 98. מתוך אותו חלון ראשי של Regional Options של לוח הבקרה, לוחצים על כפתור Set Default ואז מקבלים את החלון הבא:
בוחרים Hebrew, מאשרים ואז מאתחלים את המחשב. עכשיו אפשר להקליד עברית ב-Notepad ולשמור אותה תחת קידוד ANSI בלי לאבד את הטקסט (ודווקא האותיות עם האקצנטים שבמפת התווים למעלה יגרמו להופעת תיבת האזהרה ויישמרו רק בקידוד Unicode). כשהעברית היא שפת המערכת, ניתן לקרוא קובצי טקסט בעברית של Windows ללא קושי. קודם לכן, כשהאנגלית היא שפת המערכת, תיראה העברית של Windows כאותיות לטיניות עם אקצנטים (בהתאם לאותיות שתופסות את המקומות 224 עד 250 בטבלה שלמעלה). שינוי שפת המערכת לעברית מאפשר גם להציג יישומים עבריים שנבנו ל-Windows 9x עם התפריטים והכפתורים העבריים המקוריים, בעוד שבאופן רגיל הם יופיעו כאותיות לטיניות עם אקצנטים. רק יישום שתוכנן מראש בקידוד יוניקוד ייראה כסדרו ללא קשר להגדרת שפת המערכת של Windows 2000. המערכת מסוגלת להציג כל טקסט של יוניקוד שהותקנה לו התמיכה, אך טקסט של דפי קוד (של גרסאות Windows הקודמות על שפותיהן השונות) יוצג רק לפי הקידוד של שפת המערכת. אפשר לקבוע רק שפה אחת בו-זמנית. אם כן, כדאי לעבוד ביוניקוד כמה שיותר. רק אלה שמתעסקים הרבה עם קבצים של הגרסאות העבריות של Windows ירוויחו ממש מקביעת העברית כשפת המערכת.
דפדפן Internet Explorer, מגרסה 5 והלאה, מסוגל לשמש כתוכנה לצפייה של טקסטים בקידודים שונים והמרתם (בייחוד תתברר שימושיותו בטיפול בקבצים ישנים). קובץ טקסט שנכתב בעברית של Windows אפשר לגרור אותו לתוך הדפדפן, לשנות את הקידוד ל-Hebrew-Windows וכך לצפות בו ב-Windows 2000, אף אם שפת המערכת היא אנגלית. אפשר גם הפוך: קובץ עם עברית של יוניקוד שנכתב ב-Windows 2000, ניתן לגרור אותו ב-Windows 98 לתוך הדפדפן ולראות את האותיות העבריות. בשני המקרים, העתקת הטקסט תמיר אותו לקידוד הטבעי של המערכת: יוניקוד ב-Windows 2000, וקידוד ISO ב-Windows 98.
בנוסף אפשר לשמור קובץ טקסט או קובץ אינטרנט תחת קידוד אחר:
שמירת קובץ בקידוד האחר תמיר אותו לקידוד היעד, בתנאי שהתווים תואמים (כלומר אפשר לשמור עברית של יוניקוד בתור עברית של Windows, אך אי-אפשר לשמור רוסית של יוניקוד בתור עברית של Windows; התוצאה תהיה מספרים המציינים את מקום התווים במפת התווים של יוניקוד, ולא תווים שאפשר לעבוד איתם).
ההמרה לעברית של Windows (כלומר קידוד ISO הפופולרי) חשובה משום שיש יישומים רבים שאינם יכולים לעבוד עם יוניקוד. למשל HebTML, אותו כלי להפיכת טקסט שבו אני בונה דפי אינטרנט בעברית ויזואלית, אינו מכיר ביוניקוד; הדבקת עברית של יוניקוד לתוכו תניב רק סימני שאלה. אבל אפשר לגרום ל-HebTML לעבוד כשורה גם במערכת Windows 2000 ששפתה אנגלית אם ממירים את העברית לקידוד ISO. אמנם מקבלים אותיות לטיניות עם אקצנטים, אך היישום HebTML אינו יודע זאת, והוא הופך את סדרם כאילו היו תווים עבריים ב-Windows 98. דרך אחת להמיר עברית של יוניקוד לעברית בקידוד ISO היא כמצויין למעלה, באמצעות Internet Explorer (וזה יהיה שימושי אחר-כך עם קבצים של DOS גם-כן). יש דרך נוספת.
חלון שורת הפקודה של Windows 2000 הוא יישום רגיל של המערכת שתפקידו העיקרי לשמש מצע להרצת יישומי DOS. אפשר להריץ בו גם משחקי DOS ישנים בצורה משביעת רצון. אך שורת הפקודה של Windows 2000 יותר משוכללת מ-DOS הרגיל, ויש בה גם פעולות רבות להמרה בין קידודים.
הפקודה chcp משמשת למעבר בין קידודים. לא צריך להכין דפי קוד באמצעות קובץ גופן (כמו EGA.CPI), אלא הפקודה הזו מספיקה. נניח שיש קובץ טקסט המכיל עברית של יוניקוד בשם uniheb.txt (השמור בקידוד Unicode נורמלי, לא ב-UTF-8). משורת הפקודה מקישים תחילה:
chcp 1255
שמעביר את הקידוד לעברית של Windows (כמו בגרסאות העבריות של Windows ממש, כולל ניקוד). לאחר מכן, כשאנו נמצאים באותה ספריה שבה נמצא קובץ הטקסט, מקישים:
type uniheb.txt > winheb.txt
ומקבלים קובץ בשם winheb.txt שמכיל אותו תוכן כמו בקובץ uniheb.txt אך בקידוד עברית של Windows. יש דפי קוד רבים שמערכת Windows 2000 יכולה לטפל בהם, אך אלה הם השימושיים ביותר:
1255: עברית של Windows
862: עברית של DOS
28598: עברית של ISO (ללא ניקוד; ניקוד עברי יהפוך לסימני שאלה)
10005: עברית של מקינטוש (כמו של Windows, אך עם מספרים שונים לניקוד העברי)
65001: קידוד UTF-8 (להמרה מ-Unicode רגיל ל-UTF-8, אף כי אפשר בקלות לעשות זאת
באמצעות Notepad)
כמובן גם הפעולה ההפוכה, המרה מעברית של Windows ליוניקוד, אפשרית מחלון שורת הפקודה. אבל עכשיו יש לפתוח את חלון שורת הפקודה כך שיפלוט טקסט בקידוד של יוניקוד (כברירת מחדל הוא מייצא בקידוד של ANSI). יש להקיש את הפקודה הבאה מתוך חלון ההפעלה (Run) שבתפריט Start:
cmd /u
הפרמטר הנוסף אומר ליישום שורת הפקודה להיות במצב של פלט יוניקוד. עכשיו יש לפנינו קובץ בשם winheb.txt המכיל עברית של Windows. שוב, מקישים:
chcp 1255
ואז, כשנמצאים באותה ספריה שבה נמצא winheb.txt, מקישים:
type winheb.txt > uniheb.txt
ומקבלים קובץ בשם uniheb.txt עם עברית של יוניקוד הקריאה תחת Windows 2000.
אמנם מערכת Windows 2000 יודעת לטפל בקובצי DOS (אם באמצעות הדפדפן, ואם על-ידי המרתם בשורת הפקודה), אך אין לה תמיכה בעברית של DOS כפי שיש בגרסאות העבריות של Windows. חלון שורת הפקודה יודע להציג שפות אחרות כשמשנים את הגופן שלו ל-Lucida Console, חוץ מעברית, ערבית ועוד כמה שפות (למשל הודית וארמנית). חלון שורת הפקודה, וגם המסך המלא (כשמשנים את הגופן באמצעות פקודת graftabl, למשל graftabl 866 להצגת תווים ברוסית), מסוגלים להציג טקסט בשפות רבות, כמו צרפתית, גרמנית, פולנית, יוונית, רוסית וסינית, אך לא עברית או ערבית. במסך מלא אי-אפשר להעביר את הגופן לגופן עברי (כי אין גופן עברי), ובחלון, תחת גופן Lucida Console, מופיעה העברית בדרך-כלל כריבועים ריקים, ורק לפעמים, כמו למשל בצפייה דרך יישומים שתופסים את כל החלון כמו עורך הטקסט edit, אפשר לראות את האותיות העברית, וגם אז הן בסדר הפוך ולא לפי השיטה החזותית כמו ב-DOS האמיתי. אי-אפשר לעבוד ביישומי DOS עבריים תחת Windows 2000. ביררתי את העניין אצל התמיכה של מיקרוסופט, ומצאתי שאין וגם לא מתוכננת תמיכה בעברית או ערבית של DOS תחת Windows 2000 (וכנראה גם לא XP, לפיכך). הפתרון היחיד הוא לנטוש את תוכנות DOS הישנות לטובת גרסאות Windows סוף-כל-סוף, ואת הקבצים בעברית של DOS להמיר לקידוד מודרני יותר. על כך בפרק הבא.
[הקודם] [תוכן העניינים] [הבא]