תו (מחשב)

תו (Character ולעיתים בקיצור Char) הוא יחידת מידע או סוג משתנה, לרוב פרימיטיבי, הקיים בשפות תכנות רבות. משתנה מסוג זה מכיל ייצוג של סימול תו בודד, בקידוד המקובל במחשב. בשפות תכנות רבות, רצף של תווים נקרא מחרוזת ובאמצעות מבנה זה ניתן לשמור מידע טקסטואלי נגיש הן למכונה המחשוב והן למשתמשים בה.
בישראל השתרשה צורת הגייה משובשת לסוג משתנה זה ונהגת פעמים רבות כ"צ'אר", זאת בעקבות תחילית ה-Ch המופיעה ב-Char. עם זאת, צורת ההגייה הנכונה היא כ"קאר".

מחשבים שונים השתמשו בשיטות קידוד שונות של תווים. בעשרים השנים הראשונות של המחשוב נעשה שימוש בקידודים שונים למחשבים של יצרנים שונים, כאשר ה"רוחב" המקובל היה שש סיביות. בקידודים אלו בדרך כלל מוגדר תו (כלומר מספר בין 0 ל-63) עבור כל אחת מהספרות 0 עד 9, סימני פיסוק, והאותיות הלטיניות הרישיות.

לקראת סוף שנות השישים של המאה העשרים התפשטו קידודים בני שמונה סיביות, כשהתקן האמריקאי ASCII הוא הנפוץ ביניהם, לצד תקנים פרטיים של יצרנים שונים, שהידוע בהם הוא  EBCDIC של חברת IBM.

במערכות מחשב מיוצגים התווים באמצעות קידודים בינאריים שונים. מספר התווים האפשריים בכל קוד נקבע לפי מספר הסיביות שמרכיבות תו אחד. בקוד ISO 8859 ובקוד EBCDIC כל תו מורכב מ-8 סיביות, ולכן מספר התווים האפשרי בכל אחד מקודים אלה הוא 28 = 256. קוד ASCII מגדיר 128 תווים כאשר הסיבית העליונה היא 0, ומשאיר את 128 הקודים הבאים כאשר הסיבית העליונה היא 1 ל"דפי קוד" שונים  שמאפשרים תמיכה באלפבתים שונים כמו עברית, ערבית, יוונית, קירילית ועוד. הקידוד של מספרים אלו נקבע על ידי המחשב (כך, מחשבים שנמכרו בישראל השתמשו בקידוד עברי ומחשבים שנמכרו ביוון השתמשו בקידוד יווני וכן הלאה עבור 128 התווים העליונים), ובהמשך, מערכות הפעלה חדשות יותר תמכו במספר דפי קוד כאשר היישום יכול להורות למחשב באיזה מהם להשתמש עבור מסמך או קטע טקסט מסוים.

ב-1988 פורסם תקן יוניקוד שהומצא על ידי קן תומפסון ב מעבדות בל (והורחב בהמשך למשפחת תקנים) המאפשר שימוש באלפבתים רבים באותו מסמך או קטע טקסט. בגרסאות ראשונות שלו תו יוצג על ידי 16 סיביות, שאפשרו 65,536 תווים שונים. גרסה 2.0 של יוניקוד הורחבה להכיל 1,112,064 תווים באמצעות מנגנון UTF-16, שבו 2,048 קודים מנוצלים כדי לייצג יותר ממיליון תווים (שכל אחד מהם מיוצג על ידי ארבעה בתים), ולצידו תקן UTF-8 שהוצג על ידי תומפסון ב-1992, ומאפשר עקרונית מספר בלתי מוגבל של תווים (כשהמשמעות היא שאין מגבלה עקרונית על מספר הבתים הנחוץ לייצוג תו בודד). 

הקידודים UTF-16 ו-UTF-8 עדיין תומכים ב-ASCII, וקטע טקסט שמורכב רק מתווי ASCII (בלי תווים ב"דפי קוד", כלומר רק תווים שמיוצגים על ידי 0–127) יכול להיקרא הן כ-ASCII והן כיוניקוד ולהניב את אותו טקסט.

הסיביות המרכיבות כל תו ניתנות לכתיבה בקוד בינארי, אך נוח יותר לעשות זאת בכתיב הקסדצימלי. דוגמה: הערך 0xC1 בקוד EBCDIC הוא ייצוגה של האות A.

ראו גם
 סיבית
 קידוד תווים

 הערות שוליים 

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