מה הם קידוד תווים כמו ANSI ו- Unicode, וכיצד הם שונים?
ASCII, UTF-8, ISO-8859 ... אולי ראיתם את הכיוונים המוזרים האלה מרחפים מסביב, אבל למה בעצם הם מתכוונים? המשך לקרוא כפי שאנו מסבירים מה קידוד תווים הוא ואיך ראשי תיבות אלה מתייחסים לטקסט רגיל שאנו רואים על המסך.
אבני יסוד יסודות
כאשר אנו מדברים על שפה כתובה, אנחנו מדברים על מכתבים להיות אבני הבניין של מילים, אשר לאחר מכן לבנות משפטים, פסקאות, וכן הלאה. אותיות הן סמלים המייצגים צלילים. כשאתה מדבר על שפה, אתה מדבר על קבוצות של צלילים שמגיעים יחד כדי ליצור איזושהי משמעות. לכל מערכת שפה יש מערכת מורכבת של כללים והגדרות המסדירים משמעויות אלו. אם יש לך מילה, זה חסר תועלת, אלא אם כן אתה יודע מהי השפה ממנה ואתה משתמש בה עם אחרים שמדברים בשפה זו.
(השוואה בין גרנטה, טולו, ותמליל מלאיאלאם, תמונה מתוך ויקיפדיה)
בעולם המחשבים אנו משתמשים במונח "אופי". דמות היא סוג של מושג מופשט, המוגדר על ידי פרמטרים ספציפיים, אבל היא יחידת היסוד של המשמעות. הלטינית 'A' אינה זהה ל'אלפא 'יווני או' אליף 'ערבי, משום שיש להם הקשרים שונים - הם משפות שונות ויש להם ביטויים שונים במקצת - כך שנוכל לומר שהם דמויות שונות. הייצוג החזותי של דמות נקרא "גליף" וקבוצות שונות של גליפים נקראות גופנים. קבוצות תווים שייכות ל"סט "או ל"רפרטואר".
כאשר אתה מקליד פסקה ואתה משנה את הגופן, אתה לא משנה את הערכים הפונטיים של האותיות, אתה משנה את האופן שבו הם נראים. זה רק קוסמטי (אבל לא חשוב!). לשפות מסוימות, כמו מצרים ומצרים עתיקים, יש אידיאוגרמות; אלה מייצגים רעיונות שלמים במקום צלילים, והגייה שלהם יכולה להשתנות לאורך זמן ומרחק. אם אתה מחליף תו אחד לשני, אתה מחליף רעיון. זה יותר מסתם שינוי אותיות, זה משנה אידיאוגרמה.
קידוד תווים
(תמונה מתוך ויקיפדיה)
כאשר אתה מקליד משהו על המקלדת, או טוען קובץ, כיצד המחשב יודע מה להציג? זה מה קידוד אופי הוא. טקסט במחשב שלך אינו בעצם אותיות, זוהי סדרה של ערכים אלפאנומריים משויכים. קידוד התווים משמש כמפתח שעליו ערכים תואמים לאיזה תווים, בדומה לאופן שבו האורתוגרפיה מכתיבה את הצלילים המתאימים לאיזה אותיות. קוד מורס הוא סוג של קידוד תווים. זה מסביר איך קבוצות של יחידות ארוכות וקצרות כגון צפצופים מייצגים תווים. בקוד מורס, הדמויות הן רק אותיות באנגלית, מספרים ועצירות. יש הרבה קידודים אופי המחשב אשר מתרגמים אותיות, מספרים, סימני מבטא, סימני פיסוק, סמלים בינלאומיים, וכן הלאה.
לעתים קרובות בנושא זה, המונח "דפי קוד" משמש גם. הם למעשה קידודים אופי המשמשים חברות ספציפיות, לעתים קרובות עם שינויים קלים. לדוגמה, הדף Windows 1252 קוד (לשעבר המכונה ANSI 1252) הוא צורה שונה של ISO-8859-1. הם משמשים בעיקר כמערכת פנימית להתייחס לקידוד תווים תקני ושונה, שהם ספציפיים לאותה מערכת. בשלב מוקדם, קידוד תווים לא היה כל כך חשוב, כי המחשבים לא לתקשר אחד עם השני. עם האינטרנט עולה לגדולה ורשתות להיות התרחשות נפוצה, זה הפך להיות יותר ויותר חשוב של חיי היום יום שלנו בלי שאנחנו אפילו להבין את זה.
סוגים רבים ושונים
(תמונה של שרה sosiak)
יש הרבה קידודים אופי שונים שם בחוץ, ויש הרבה סיבות לכך. איזה קידוד תווים תבחר להשתמש תלוי מה הם הצרכים שלך. אם אתה מתקשר רוסית, זה הגיוני להשתמש קידוד אופי התומך קירילית היטב. אם אתה מתקשר קוריאנית, אז אתה רוצה משהו המייצג האנגול ו Hanja היטב. אם אתה מתמטיקאי, אז אתה רוצה משהו שיש לו את כל סמלים מדעיים מתמטיים מיוצגים היטב, כמו גם את הגליפים היוונית והלטינית. אם אתה אצן, אולי היית מרוויח מהטקסט הפוך. בנוסף, אם אתה רוצה את כל סוגי המסמכים האלה כדי להיות מוצג על ידי כל אדם, אתה רוצה קידוד זה די נפוץ ונגיש.
בואו נסתכל על כמה מן הנפוצים יותר.
(קטע מתוך שולחן ASCII, תמונה מ asciitable.com)
- ASCII - קוד התקנון האמריקאי לחילופי מידע הוא אחד מקודדי התווים הישנים. זה תוכנן במקור על בסיס קודים טלגרפיים והתפתח לאורך זמן כדי לכלול סמלים ועוד כמה מיושנים הדמויות שליטה לא מודפס. זה כנראה בסיסי כמו שאתה יכול לקבל במונחים של מערכות מודרניות, כפי שהוא מוגבל אלפבית הלטיני ללא תווים מודגש. קידוד 7 סיביות שלה מאפשר רק 128 תווים, ולכן יש כמה גרסאות לא רשמיות בשימוש ברחבי העולם.
- ISO-8859 - קבוצת קידוד האופי הנפוצה ביותר של הארגון הבינלאומי לתקינה היא מספר 8859. כל קידוד ספציפי מוגדר על ידי מספר, לעתים קרובות על ידי כינוי תיאורי, למשל. ISO-8859-3 (Latin-3), ISO-8859-6 (לטינית / ערבית). זוהי קבוצת-על של ASCII, כלומר, 128 הערכים הראשונים בקידוד הם זהים ל- ASCII. זה 8-bit, עם זאת, ומאפשר 256 תווים, אז זה בונה משם וכולל מגוון רחב יותר של תווים, עם כל קידוד ספציפי התמקדות קבוצה שונה של קריטריונים. לטינית -1 כלל חבורה של אותיות וסמלים מודגשים, אך הוחלף מאוחר יותר במערך מתוקן שנקרא Latin-9 הכולל גליפים מעודכנים כמו סמל היורו.
(קטע מתוך התסריט הטיבטי, Unicode v4, מ- unicode.org)
- Unicode - תקן קידוד זה מכוון לאוניברסליות. הוא כולל כעת 93 תסריטים מאורגנים במספר בלוקים, עם הרבה יותר יצירות. Unicode פועל בצורה שונה מזו של ערכות תווים אחרות שבמקום קידוד ישיר עבור גליף, כל ערך מופנה אל "נקודת קוד". אלה הם ערכים הקסדצימליים התואמים תווים אבל הגליפים עצמם ניתנים באופן מנותק על ידי התוכנית , כגון דפדפן האינטרנט שלך. נקודות קוד אלה מתוארות בדרך כלל כדלקמן: U + 0040 (אשר מתרגם ל '@'). קידודים ספציפיים תחת תקן Unicode הם UTF-8 ו- UTF-16. UTF-8 מנסה לאפשר תאימות מקסימלית עם ASCII. זה 8 סיביות, אבל מאפשר את כל הדמויות באמצעות מנגנון החלפה זוגות מרובים של ערכים לכל תו. UTF-16 מטיל תאימות ASCII מושלמת לתאימות מלאה יותר של 16 סיביות עם התקן.
- ISO-10646 - זה לא קידוד בפועל, רק דמות אופי של Unicode זה היה סטנדרטי על ידי ISO. זה בעיקר חשוב כי זה הרפרטואר אופי המשמש HTML. חלק מהפונקציות המתקדמות יותר המסופקות על-ידי Unicode המאפשרות איסוף ו-מימין לשמאל לצד scripting שמאלה לימין חסר. ובכל זאת, זה עובד טוב מאוד לשימוש באינטרנט כפי שהוא מאפשר שימוש במגוון רחב של סקריפטים ומאפשר לדפדפן לפרש את הגליפים. זה עושה לוקליזציה קצת יותר קל.
מה קידוד אני צריך להשתמש?
ובכן, ASCII עובד עבור רוב דוברי אנגלית, אבל לא הרבה אחר. לעתים קרובות יותר תראה את ISO-8859-1, אשר עובד עבור רוב שפות מערב אירופה. הגרסאות האחרות של ISO-8859 עובדות עבור סקריפטים קיריליים, ערבית, יוונית או סקריפטים ספציפיים אחרים. עם זאת, אם ברצונך להציג מספר סקריפטים באותו מסמך או באותו דף אינטרנט, UTF-8 מאפשר תאימות טובה בהרבה. זה גם עובד טוב מאוד עבור אנשים המשתמשים פיסוק תקין, סמלים מתמטיים, או את התווים מחוץ השרוול, כגון ריבועים תיבות הסימון.
(מספר שפות במסמך אחד, צילום מסך של gujaratsamachar.com)
יש חסרונות לכל קבוצה, עם זאת. ASCII מוגבל בסימני הפיסוק שלו, כך שזה לא עובד טוב במיוחד עבור עריכות נכונה טיפוגרפית. פעם סוג העתק / הדבק מ - Word רק כדי לקבל שילוב מוזר של גליפים? זה החיסרון של ISO-8859, או נכון יותר, אופרביליות כביכול שלה עם דפי קוד ספציפי OS (אנחנו מסתכלים עלייך, מיקרוסופט!). החיסרון העיקרי של UTF-8 הוא היעדר תמיכה הולמת בעריכת ועריכה של יישומים. בעיה נוספת היא שדפדפנים לעיתים קרובות אינם מפרשים ורק מציגים את סימן ההזמנה של בתים של תו מקודד UTF-8. כתוצאה מכך יוצגו גליפים לא רצויים. וכמובן, הכרזה על קידוד אחד ושימוש בתווים מאדם אחר מבלי להכריז / להתייחס אליהם כהלכה בדף אינטרנט מקשה על הדפדפנים להציג אותם כהלכה ולמנועי החיפוש כדי להוסיף אותם לאינדקס.
עבור המסמכים שלך, כתבי יד, וכן הלאה, אתה יכול להשתמש בכל מה שאתה צריך כדי לעשות את העבודה. עם זאת, ככל האינטרנט הולך, עם זאת, נראה כי רוב האנשים מסכימים על שימוש בגירסה UTF-8 שאינו משתמש סימן בייט, אבל זה לא לגמרי פה אחד. כפי שניתן לראות, לכל קידוד תווים יש שימוש משלו, הקשר, חוזקות וחולשות. בתור משתמש הקצה, אתה כנראה לא צריך להתמודד עם זה, אבל עכשיו אתה יכול לקחת את צעד נוסף קדימה אם אתה בוחר.