מה ההבדל בין ASCII לטקסט Unicode?

מה ההבדל בין ASCII לטקסט Unicode?

ASCII ו- Unicode שניהם תקנים המתייחסים לייצוג דיגיטלי של טקסט, במיוחד תווים המרכיבים טקסט. עם זאת, שני הסטנדרטים שונים באופן משמעותי, כאשר מאפיינים רבים משקפים את סדר היצירה שלהם.





אמריקה מול היקום

קוד התקן האמריקאי לחילופי מידע (ASCII), באופן לא מפתיע, פונה לקהל אמריקאי וכותב באלפבית האנגלי. הוא עוסק באותיות ללא ריכוז, כגון A-Z ו- a-z, בתוספת מספר קטן של סימני פיסוק ותווי שליטה.





בפרט, אין דרך לייצג מילות הלוואה שאומצו משפות אחרות, כגון קפה ב- ASCII, מבלי לבצע את האנגליזציה שלהן על ידי החלפת תווים עם מבטא (למשל, בֵּית קָפֶה ). הרחבות ASCII מקומיות פותחו על מנת לתת מענה לצרכי שפות שונות, אך מאמצים אלה גרמו למגושמות הדדיות והותירו בבירור את יכולות ASCII.





לעומת זאת, מערכת התווים המקודדת אוניברסלית (Unicode) נמצאת בקצה הנגדי של סולם השאיפות. יוניקוד מנסה לתת מענה לכמה שיותר ממערכות הכתיבה בעולם, עד כדי כך שהיא מכסה שפות עתיקות ואת מערך הסמלים האקספרסיבי האהוב על כולם, אמוג'י.

ערכת תווים או קידוד תווים?

במילים פשוטות, מערך תווים הוא מבחר של תווים (למשל A-Z) ואילו קידוד תווים הוא מיפוי בין מערך תווים לערך שניתן לייצג אותו דיגיטלית (למשל, A = 1, B = 2).



תקן ASCII הוא למעשה שניהם: הוא מגדיר את קבוצת התווים שהוא מייצג ושיטה למיפוי כל תו לערך מספרי.

לעומת זאת, המילה Unicode משמשת במספר הקשרים שונים כדי להתכוון לדברים שונים. אתה יכול לחשוב על זה כמונח מקיף, כמו ASCII, להתייחס למערך תווים ולמספר קידודים. אך מכיוון שישנם מספר קידודים, המונח Unicode משמש לעתים קרובות להתייחס למכלול הדמויות, ולא לאופן מיפויו.





גודל

בשל היקפו, Unicode מייצג תווים רבים בהרבה מ- ASCII. ASCII סטנדרטי משתמש בטווח של 7 סיביות כדי לקודד 128 נפרדות דמויות . מצד שני, יוניקוד כל כך גדול שאנחנו צריכים להשתמש במינוח אחר רק כדי לדבר על זה!

יוניקוד פונה ל -1,111,998 כתובות נקודות קוד. נקודת קוד דומה בערך למרחב השמור לדמות, אבל המצב הרבה יותר מסובך מזה כשאתה מתחיל להתעמק בפרטים!





השוואה שימושית יותר היא כמה סקריפטים (או מערכות כתיבה) נתמכים כיום. כמובן ש- ASCII מטפל רק באלפבית האנגלי, בעצם הכתב הלטיני או הרומי. הגרסה של Unicode שהופקה בשנת 2020 הולכת רחוק הרבה יותר: היא כוללת תמיכה בסך הכל של 154 סקריפטים.

אִחסוּן

טווח ה- 7 סיביות של ASCII פירושו שכל תו מאוחסן בבת אחת של 8 סיביות; הסיביה הרזרבית אינה בשימוש בתקן ASCII סטנדרטי. זה הופך את חישובי הגודל לטריוויאליים: אורך הטקסט, בתווים, הוא גודל הקובץ בבתים.

אתה יכול לאשר זאת בעזרת רצף הפקודות bash הבא. ראשית, אנו יוצרים קובץ המכיל 12 אותיות טקסט:

לאן לשלוח מכתבים לחיילים
$ echo -n 'Hello, world' > foo

כדי לבדוק שהטקסט נמצא בקידוד ASCII, נוכל להשתמש ב קוֹבֶץ פקודה:

$ file foo
foo: ASCII text, with no line terminators

לבסוף, כדי לקבל את מספר הבייטים המדויק שהקובץ תופס, אנו משתמשים ב מדינה פקודה:

$ stat -f%z foo
12

מכיוון שתקן Unicode עוסק במגוון תווים גדול בהרבה, קובץ Unicode תופס באופן טבעי יותר שטח אחסון. כמה בדיוק תלוי בקידוד.

חזרה על אותה מערכת פקודות מלפני, באמצעות תו שאינו יכול להיות מיוצג ב- ASCII, נותנת את הדברים הבאים:

$ echo -n '€' > foo
$ file foo
foo: UTF-8 Unicode text, with no line terminators
$ stat -f%z foo
3

תו יחיד זה תופס 3 בתים בקובץ Unicode. שים לב שבאש יצר אוטומטית קובץ UTF-8 מכיוון שקובץ ASCII אינו יכול לאחסן את התו שנבחר (€). UTF-8 הוא ללא ספק קידוד התווים הנפוץ ביותר עבור Unicode; UTF-16 ו- UTF-32 הם שני קידוד חלופי, אך הם משמשים הרבה פחות.

UTF-8 הוא קידוד ברוחב משתנה, כלומר הוא משתמש בכמויות אחסון שונות עבור נקודות קוד שונות. כל נקודת קוד תופסת בין אחד לארבעה בתים, מתוך כוונה שתווים נפוצים יותר דורשים פחות מקום, ונותנים סוג של דחיסה מובנית. החיסרון הוא שקביעת אורך או גודל דרישות נתח טקסט נתון הופכת להיות הרבה יותר מסובכת.

ASCII הוא Unicode, אך Unicode אינו ASCII

לצורך תאימות לאחור, 128 נקודות הקוד הראשונות של Unicode מייצגות את התווים המקבילים ל- ASCII. מאחר ש- UTF-8 מקודד כל אחד מהתווים הללו בבת אחת, כל טקסט ASCII הוא גם טקסט UTF-8. Unicode היא קבוצת על של ASCII.

עם זאת, כפי שמוצג למעלה, לא ניתן להשתמש בקבצי Unicode רבים בהקשר ASCII. כל תו שהוא מחוץ לתחום יוצג בצורה בלתי צפויה, לעתים קרובות עם תווים מוחלפים השונים לחלוטין מאלו שנועדו.

שימוש מודרני

עבור רוב המטרות, ASCII נחשב במידה רבה לתקן מדור קודם. אפילו במצבים שתומכים רק בכתב הלטיני-כאשר תמיכה מלאה במורכבות של Unicode מיותרת, למשל-בדרך כלל יותר נוח להשתמש ב- UTF-8 ולנצל את תאימות ASCII שלו.

דברים לקנות עם אשראי Google Play

במיוחד יש לשמור ולשדר דפי אינטרנט באמצעות UTF-8, המהווה ברירת מחדל עבור HTML5. זה בניגוד לרשת הקודמת, שעסקה ב- ASCII כברירת מחדל לפני שהוחלפה על ידי הלטינית 1.

תקן שמשתנה

הגרסה האחרונה של ASCII התקיימה בשנת 1986.

לעומת זאת, Unicode ממשיך להתעדכן מדי שנה. סקריפטים חדשים, דמויות ובמיוחד אמוג'י חדש מתווספים באופן קבוע. עם רק חלק קטן מאלה שהוקצו, מערך התווים המלא צפוי לצמוח ולגדול בעתיד הנראה לעין.

קָשׁוּר: 100 האמוג'ים הפופולריים ביותר שמוסברים

ASCII מול יוניקוד

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

לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל מהו טקסט ASCII וכיצד משתמשים בו?

טקסט ASCII נראה קריפי, אך יש לו שימושים רבים ברחבי האינטרנט.

קרא הבא
נושאים קשורים
  • הסבר על הטכנולוגיה
  • אמוג'ים
  • ז'רגון
  • תרבות אינטרנט
  • Unicode
על הסופר בובי ג'ק(58 מאמרים פורסמו)

בובי הוא חובב טכנולוגיה שעבד כמפתח תוכנה במשך רוב שני העשורים. הוא נלהב משחקים, עובד כעורך ביקורות במגזין Switch Player, והוא שקוע בכל ההיבטים של פרסום מקוון ופיתוח אתרים.

עוד מאת בובי ג'ק

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה