Command Palette

Search for a command to run...

טבלת ASCII: המדריך המלא לקודי תווים (0–255)

טבלת ASCII: המדריך המלא לקודי תווים (0–255)

T
Toolz Team
|Aug 23, 2026|15 קריאה דקות

חלק מאוסף בינארי ומשוש

בפעם הראשונה ASCII באמת היה חשוב לי, הייתי ניפוי באגים CSV ייבוא עבור תוסף וורדפרס כי כל הזמן פיצול לקוח אחד & #39; s כתובת לשתי שורות הקובץ נראה בסדר בכל עורך פתחתי אותו פנימה התברר ייצוא אחד השתמש החזרת עגלה חשופה (קוד 13) כסיום שורה בעוד המנתח שלי ציפה הזנת שורה (קוד 10), ומפריד רשומות תועה (קוד 30) התגנב מייצוא מיינפריים במעלה הזרם אף אחד מאותם תווים להדפיס שום דבר אתה לא יכול לראות אותם אתה יכול לראות אותם רק אם יש לך טבלה שהופכת את הבית הבלתי נראה למספר ושם - וזו בדיוק הסיבה שבניתי את שולחן ASCII על Toolz.dev ולמה אני שומר אותו מוצמד בכרטיסייה דפדפן.

TL;DR: ASCII ממפה כל תו בסיסי באנגלית וקבוצה של אותות בקרה למספרים 0–127; סטים מורחבים כמו ISO 8859-1 (לטינית-1) ממלאים 128–255. הוֹפֶל A הוא 65, אותיות קטנות a הוא 97, הרווח הוא 32, וה-"invisible" קודים 0–31 הם תווי בקרה כמו כרטיסייה (9), הזנת שורה (10) והחזרת עגלה (13). אם אתה יכול לקרוא את הטבלה, אתה יכול לפענח כמעט כל באג מקודד טקסט, לברוח מכל תו בבטחה ב-HTML ולהבין מדוע UTF-8, JSON וכל שפת תכנות מתנהגים כפי שהם מתנהגים עם מחרוזות.

I' ביליתי שנים בבניית דברים שחיים ומתים על טיפול בטקסט - תוסף ניהול וורדפרס, ממשקי API של Laravel, חזיתות של React - ואני יכול לומר לך שמודל מנטלי עובד של ASCII חוסך יותר שעות ניפוי באגים כמעט מכל פיסת ידע אחרת ברמה נמוכה המדריך הזה הוא הגרסה שהלוואי שמישהו היה מוסר לי מוקדם.

מהו ASCII ולמה זה עדיין משנה?

ASCII מייצג את קוד התקן האמריקאי לחילופי מידע. הוא תוקן לראשונה בשנת 1963 והתיישב בצורה שאנו עדיין משתמשים בה כ-ANSI X3.4-1986 (פורסם גם בעולם כ-ISO/IEC 646), והגדרת הרשת שצוטטה עד היום היא RFC 20 (1969). בליבה היא טבלת חיפוש: מיפוי מהמספרים 0 עד 127 לקבוצה ספציפית של תווים ואותות בקרה. שבעה ביטים, 128 חריצים, הסכם אחד שכל עולם המחשוב יכול לחלוק.

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

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

כיצד מאורגנת טבלת ASCII?

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

תווי בקרה (0–31 ו-127). אלו הם הקודים שאינם מודפסים הם נושאים הוראות ולא גליפים: null (0), פעמון (7), רווח אחורי (8), לשונית אופקית (9), הזנת קו (10), החזרת עגלה (13), בריחה (27), ומחק (127) הם אלה שאתה ' למעשה יפגשו. הם תוכננו להניע מכונות טלטייפ, ורוחות הרפאים שלהם עדיין מריצות הכל, החל מסיומות שורות בקובצי המקור שלך ועד לרצפי הבריחה שצובעים את פלט המסוף שלך.

סימני פיסוק וסמלים להדפסה (32–47, 58–64, 91–96, 123–126). שטח הוא 32 - הקוד הנמוך ביותר להדפסה, וטכנית תו הדפסה למרות שהוא לא מראה כלום השאר הם הסמלים הפזורים סביב המקלדת שלך: ! הוא בן 33, @ הוא בן 64, ~ הוא 126.

ספרות (48–57). הדמויות 0 דרך 9 שב בריצה מסודרת מ-48 עד 57. הסדר הזה הוא מכוון: הפחת 48 מספרה 's קוד ותקבל את הערך המספרי שלו, וזה כמעט כל "נתח מספר ממחרוזת" השגרה מתחילה.

אותיות רישיות (65–90) ואותיות קטנות (97–122). A הוא בן 65, Z הוא 90; a הוא 97, z הוא 122. הפער בין אות ' צורת האותיות הגדולות והקטנות היא תמיד בדיוק 32.

הטווח המורחב (128–255) הוא חיה אחרת, והיא ' שם חי רוב הבלבול - אז הוא מקבל סעיף משלו למטה.

מה ההבדל בין ASCII ל-ASCII מורחב?

תקן ASCII מגדיר רק 128 קודים מכיוון שהוא משתמש רק בשבעה סיביות. אבל מחשבים מאחסנים טקסט בבתים של שמונה סיביות, מה שמותיר 128 חריצים נוספים שלמים (128–255) שאינם בשימוש בתקן. "AscII&quot מורחב; הוא מונח הגג עבור הסכמות השונות הממלאות את אותם משבצות.

המלכוד - וזה ' הוא גדול - הוא שאין ASCII מורחב אחד. דפי קוד שונים מקצים את 128 הקודים העליונים בצורה שונה לחלוטין. IBM's עמוד קוד 437 שם תווים לציור תיבה. Windows-1252 שם ציטוטים מתולתלים וסימן האירו שם. ISO/IEC 8859-1, המכונה Latin-1, שם אותיות מערב אירופאיות מודגשות. בייט עם ערך 233 הוא é בלטינית-1, אבל משהו אחר לגמרי בעמוד קוד 437.

ב-Toolz.dev אני מציג את הקצאת ISO 8859-1 (לטינית-1) עבור קודים 160–255, מכיוון שזהו תקן שפורסם אמיתי והוא הבסיס למערך התווים המקורי של HTML - מה שאומר שישויות ה-HTML הנקובות מסתדרות. קודים 128–159 בלטינית-1 הם בלוק שני של תווי בקרה (הפקדים "C1"), כך שהכלי מתייג אותם ככאלה במקום להעמיד פנים שהם' ניתנים להדפסה מחדש.

הלקח המעשי: כשמישהו אומר " ASCII מורחב," תמיד לשאול איזה אחד. דף קוד לא תואם הוא הגורם הקלאסי ל- é mojibake אתה רואה כאשר קובץ UTF-8 נקרא כלטינית-1, או תיבות הגליף החסרות כאשר קורה הפוך. הֲבָנָה פרטיות נתונים וכיצד כלים מטפלים בטקסט שלך האם דאגה אחת; ההבנה כיצד בתים ממפים לתווים היא החצי השני של לעולם לא להיות מופתע מטקסט משובש שוב.

מדוע אותיות גדולות וקטנות נבדלות ב-32 בדיוק?

זהו היצירה האהובה עליי בעיצוב ASCII, כי זה ' לא תאונה - זה 's הנדסה. הפריסה נבחרה כך שאות ' צורות אותיות רישיות וקטנות נבדלות רק בסיבית 5, בעלת הערך 32. A הוא 65 (בינארי 01000001); a הוא 97 (בינארי 01100001). ההבדל היחיד הוא הביט הבודד הזה.

החלטה זו פירושה שתוכנית יכולה לשנות מקרה בפעולה אחת בסיביות במקום טבלת חיפוש. לאותיות גדולות, נקה סיביות 5 (code & ~32); לאותיות קטנות לאותיות גדולות, הגדר אותו (code | 32); כדי להחליף מארז בכל מקרה, הפוך אותו (code ^ 32). עשרות שנים של ספריות מחרוזות נבנו על הטריק הזה לפני Unicode' כללי מקרה מורכבים יותר הפכו אותו לא בטוח לכל דבר מעבר ל-ASCII רגיל. כשאתה גולש בטבלה ושם לב שכל אות גדולה יושבת בדיוק 32 מתחת לתאומה הקטנה שלה, אתה ' מסתכלים על החלטה שהתקבלה בשנות ה-1960 שעדיין מעצבת את אופן כתיבת התוכנה.

כיצד אוכל להמיר בין תווים, עשרוני, משושה ובינארי?

לכל קוד ASCII יש ארבעה ייצוגים משותפים, והמעבר ביניהם הוא חלק שגרתי בעבודה ברמה נמוכה. Here's איך הם מתייחסים למכתב H:

ייצוג ערך עבור H איפה אתה ' תראה את זה
אופי H טקסט רגיל
עשרוני 72 String.fromCharCode(72), chr(72)
הקסדצימלי 48 משושה זורק, \x48, קידוד כתובת אתר/אחוז
אוקטל 110 כלי יוניקס ישנים יותר, \110 בריחות
בינארי 01001000 פעולות Bitwise, עיצוב פרוטוקול

כדי לאיית מילה מ-hex, קח כל זוג ספרות hex כבייט אחד: 48 69 הוא 72 105 בעשרוני, כלומר Hi. כדי ללכת לכיוון השני, חפש כל תו 's code. ה שולחן ASCII עושה את שני הכיוונים - הוא מציג את כל חמש העמודות עבור כל קוד, ותיבת החיפוש שלו מקבלת תו, מספר עשרוני, ערך hex (עם או בלי א 0x קידומת), מחרוזת אוקטלית או בינארית, או אפילו שם ישות HTML, כך שמקלידים &, 38, או amp כולם לקפוץ לאמפרסנד.

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

בשביל מה בעצם תווי בקרה של ASCII?

הקודים שאינם מודפסים 0–31 (פלוס 127) מרגישים כמו יצירות מוזיאון, אבל כמה מהם מנהלים את חייך מדי יום.

הזנת קו (10) והחזרת כרכרה (13) האם השניים הגדולים. בטלטייפ, החזרת הגררה הזיזה את ראש ההדפסה בחזרה לשוליים השמאליים והזנת הקו קידמה את הנייר שורה אחת - שתי פעולות פיזיות נפרדות. המורשת הזו היא הסיבה לכך שקובצי טקסט של Windows מסיימים שורות עם שניהם (CRLF, 13 ואז 10), בעוד ש-Unix ו-macOS משתמשים רק בהזנת קו (LF, 10). כמעט כל "למה הקובץ שלי מלא ב ^M דמויות?" עקבות באג חזרה לפיצול הזה אסון CSV שלי מהמבוא היה בדיוק זה.

לשונית אופקית (9) האם תו הכרטיסייה - בייט בודד שעורכים מציגים כמספר רווחים. ריק (0) מסיים מחרוזות ב-C ומסמן את "אין נתונים" באינספור פורמטים. בריחה (27) מציג את רצפי הבקרה שמזיזים את הסמן וצובעים את המסוף שלך. פעמון (7) פעם צלצל בפעמון אמיתי; עכשיו זה מצפצף או מהבהב בחלון המסוף שלך.

הסיבה לכך שטבלה טובה נותנת שמות לקודים האלה חשובה: כאשר אתה מוצא בית 27 יושב בנתונים שלך, "ESC - Escape" אומר לך באופן מיידי שאתה ' מסתכלים על רצף בקרת מסוף, לא טקסט מושחת. מספר גולמי ישאיר אותך מנחש.

כיצד ASCII קשור לישויות HTML ולבריחה בטוחה?

אם אתה כותב עבור האינטרנט - ובונה ערכת כלים למפתחים מוצקים אומר שתעשה זאת - קומץ תווי ASCII צריכים לברוח כדי שהדפדפן יעשה זאת &#39; לא קרא אותם בטעות כסימון. הסימן פחות מ < (60), גדול מ > (62), אמפרסנד & (38), וציטוט כפול " (34) הם ארבעת המסוכנים. שמאל גולמי בתוך HTML הם יכולים לשבור את הדף שלך או לפתוח חור הזרקה; נכתב כישויות (&lt;, &gt;, &amp;, &quot;) הם מציגים כדמויות מילוליות.

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

האם טבלת ASCII זהה ל-Unicode?

לא, אבל הם&#39; תואמים בכוונה, ושווה ליישר את הקשר. Unicode הוא תקן גדול בהרבה - למעלה ממיליון נקודות קוד אפשריות, המכסה כל מערכת כתיבה בתוספת סמלים ואימוג'י. ASCII, עם 128 הקודים שלו, הוא תת-קבוצה זעירה. מה שגורם להם לשחק יפה ביחד הוא ש-Unicode&#39; 128 נקודות הקוד הראשונות מוגדרות זהות ל-ASCII, ו-UTF-8 מקודד בדיוק את 128 אלה כבתים בודדים עם ערכי ה-ASCII שלהם.

התוצאה אלגנטית: כל קובץ ASCII חוקי הוא אוטומטית קובץ UTF-8 חוקי לעולם אין צורך להמיר טקסט רגיל באנגלית בין השניים ברגע שאתה עובר מעבר לקוד 127 - אות מודגשת, ציטוט מתולתל, אימוג'י - אתה משאיר את ASCII מאחור ואתה #39; נמצאים היטב בטריטוריית Unicode מרובת בתים, שבה תו אחד עשוי לתפוס שניים, שלושה או ארבעה בתים טבלת Toolz.dev ASCII מכסה את טווחי ASCII ו-Latin-1 ישירות, ומקודד הטקסט שלו מדווח על נקודת הקוד של Unicode עבור כל תו שאתה מדביק מעבר להם, כך שתוכל לראות בדיוק היכן מסתיים ASCII ו-Unicode משתלט.

שאלות נפוצות

מה זה ASCII?

ASCII (American Standard Code for Information Interchange) הוא תקן קידוד תווים הממפה אותיות, ספרות, סימני פיסוק ובקרה למספרים 0-127. הוא תוקן כ-ANSI X3.4 בשנת 1963 ונשאר הבסיס לקידודי טקסט מודרניים, כולל UTF-8, ש-128 נקודות הקוד הראשונות שלו זהות ל-ASCII.

מהו ערך ASCII של &quot;A&quot;?

האות הגדולה &quot;A&quot; בעל ערך ASCII 65 (hex 41, octal 101, בינארי 01000001). אותיות קטנות &quot;a&quot; גבוה ב-97 - בדיוק 32 - וזו הסיבה שסיבית 5 מתהפכת מחליפה אות בין אותיות רישיות לאותיות קטנות.

מה ההבדל בין ASCII ל-ASCII מורחב?

תקן ASCII משתמש ב-7 סיביות ומגדיר 128 קודים (0–127). &quot; Extended ASCII&quot; משתמש בסיבית השמינית כדי להוסיף עוד 128 קודים (128–255) עבור אותיות מודגשות, סמלים ותווים מציורי תיבות. אין ASCII מורחב אחד - דפי קוד שונים מקצים את החצי העליון בצורה שונה טבלה זו מציגה את הקצאת ISO 8859-1 (לטינית-1), הבסיס של ערכת התווים הלטינית-1 HTML.

מהם תווי בקרת ASCII?

קודים 0-31 ו-127 הם תווי בקרה שאינם הדפסה הנושאים הוראות ולא גליפים גלויים. הנפוצים כוללים הזנת קו (10), החזרת עגלה (13), לשונית אופקית (9), בריחה (27) ו-null (0). הם שלטו במקור במכונות טלטייפ ועדיין מסיימים קווים, תוחמים שדות ומניעים רצפי בריחה של מסופי היום.

איך אני ממיר hex ל-ascii?

כל זוג ספרות משושה מייצג בית אחד, אשר ממפה לקוד ASCII אחד.Hex 48 הוא 72 בעשרוני, שהוא &quot;H&quot;; hex 69 הוא 105, שהוא &quot;i&quot; - אז 48 69 לחשים &quot;Hi&quot;. חפש בטבלת ASCII לפי ערך hex (עם או בלי קידומת 0x) כדי למצוא את התו התואם באופן מיידי.

מדוע אותיות רישיות שונות מאותיות קטנות ב-32 ב-ASCII?

ASCII הונח כך שההבדל היחיד בין אות &#39; צורות רישיות וקטנות הוא סיביות 5 (הערך 32). &quot;A&quot; הוא 65 ו-&quot;a&quot; הוא 97; &quot;Z&quot; הוא 90 ו-&quot;z&quot; הוא 122. עיצוב מכוון זה מאפשר לתוכניות לשנות רישיות עם פעולה סיבית אחת ולא בטבלת חיפוש.

האם טבלת ASCII זהה ל-Unicode?

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

האם הטקסט שלי פרטי כשאני משתמש בטבלת ASCII?

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


נכתב על ידי Liton, בונה של [Toolz.dev] (/, WP Adminify, ושורה ארוכה של פרויקטים של Laravel ו-React שכולם, במוקדם או במאוחר, הסתכמו בהבנת הבתים הנכונים.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!