Skip to content

جدول ASCII ومحوّل الشيفرات

جدول ASCII الكامل: 128 حرفًا بالأنظمة العشري والست عشري والثماني والثنائي، مع محوّل ثنائي الاتجاه بين النص وشيفرات ASCII. أحرف التحكم مرفقة بتسلسلات الهروب وتدوين ^ وأين تصادفها فعليًا.

بدون تتبّع يعمل في المتصفّح مجاني

كل شيء يعمل داخل متصفحك — لا يُرفع ما تُدخله ولا يُسجَّل ولا يُخزَّن.

النص وشيفرات ASCII في الاتجاهين

جدول ASCII الكامل (0–127)

128 / 128
عشري ست عشري ثماني ثنائي الحرف الاسم الهروب Caret HTML أين تصادفه
0 00 000 00000000 NUL Null \0 ^@ � منهي السلاسل النصية في لغة C؛ يفصل أسماء الملفات في find -print0 و xargs -0؛ يجعل grep يقول «Binary file matches».
1 01 001 00000001 SOH Start of Heading ^A  يستعمله بروتوكول FIX المالي فاصلًا للحقول، ولهذا تبدو رسائل FIX سطرًا واحدًا متلاصقًا.
2 02 002 00000010 STX Start of Text ^B  ترويسة الإطار في بروتوكولات المنفذ التسلسلي ونقاط البيع وقارئات الباركود؛ ومفتاح البادئة في tmux هو Ctrl+B.
3 03 003 00000011 ETX End of Text ^C  الضغط على Ctrl+C يرسل هذا البايت؛ ثم يحوّله انضباط سطر الطرفية إلى SIGINT، فلا يراه برنامجك أصلًا.
4 04 004 00000100 EOT End of Transmission ^D  الضغط على Ctrl+D يسلّم سطر الإدخال الحالي؛ وحين يكون السطر فارغًا تُرجع read صفر بايت، وذلك هو EOF.
5 05 005 00000101 ENQ Enquiry ^E  مصافحات وصلات قديمة؛ وبعض الطرفيات ترد عليه بسلسلة تعريف.
6 06 006 00000110 ACK Acknowledge ^F  يُقرن بـ ENQ و NAK في بروتوكولات طبقة الوصلة القديمة؛ وما زال يُرى في العتاد التسلسلي الصناعي.
7 07 007 00000111 BEL Bell \a ^G  ‏printf '\a' يقرع الجرس؛ والأشيع اليوم أنه ينهي متتالية OSC مثل ضبط عنوان النافذة.
8 08 010 00001000 BS Backspace \b ^H  المسح التراجعي في أشرطة التقدم. لاحظ أن معظم الطرفيات ترسل 0x7F لمفتاح Backspace لا هذا البايت.
9 09 011 00001001 HT Character Tabulation \t ^I 	 وصفات Makefile يجب أن تبدأ بـ TAB حقيقي؛ و gofmt يزيح بـ TAB؛ ومفتاح Tab و Ctrl+I هما البايت نفسه.
10 0A 012 00001010 LF Line Feed \n ^J 
 سطر جديد في Unix و macOS؛ وإعداد core.autocrlf في git يحوّل بينه وبين CRLF.
11 0B 013 00001011 VT Line Tabulation \v ^K  شبه منقرض، لكنه ما زال يُعدّ فاصل سطر: splitlines() تقسم عنده بينما split("\n") لا تفعل.
12 0C 014 00001100 FF Form Feed \f ^L  فاصل صفحة في الطابعات؛ و Ctrl+L يمسح الطرفية؛ و Emacs يستعمله علامة تقسيم داخل ملفات الشيفرة.
13 0D 015 00001101 CR Carriage Return \r ^M 
 النصف الأول من CRLF في Windows؛ يظهر كـ ^M في git diff؛ ويسبب «bad interpreter: /bin/bash^M».
14 0E 016 00001110 SO Shift Out ^N  ينتقل إلى مجموعة المحارف البديلة G1 في ISO 2022؛ ويحيط بمناطق البايتين على حواسيب EBCDIC المركزية.
15 0F 017 00001111 SI Shift In ^O  يعود إلى مجموعة المحارف الافتراضية G0، ويُقرن بـ SO.
16 10 020 00010000 DLE Data Link Escape ^P  بادئة هروب لحشو البايتات في البروتوكولات الثنائية القديمة.
17 11 021 00010001 DC1 Device Control One ^Q  ‏XON — استئناف التحكم البرمجي بالتدفق؛ و Ctrl+Q يفكّ تجميد خرج الطرفية.
18 12 022 00010010 DC2 Device Control Two ^R  بلا معنى حديث ثابت. و Ctrl+R في الصدفة ارتباط مفاتيح في readline لا علاقة له بهذه الشيفرة.
19 13 023 00010011 DC3 Device Control Three ^S  ‏XOFF — إيقاف مؤقت للتحكم البرمجي بالتدفق. والضغط الخاطئ على Ctrl+S هو السبب المعتاد لتجمّد الطرفية.
20 14 024 00010100 DC4 Device Control Four ^T  بلا معنى حديث ثابت؛ وعلى BSD و macOS يكون Ctrl+T مفتاح حالة الطرفية.
21 15 025 00010101 NAK Negative Acknowledge ^U  ‏Ctrl+U يمسح السطر كله — وذلك إعداد kill في الطرفية، لا المعنى الأصلي لهذه الشيفرة.
22 16 026 00010110 SYN Synchronous Idle ^V  ‏Ctrl+V هو lnext: اضغطه ثم اضغط Tab لتكتب TAB حرفيًا في bash دون إطلاق الإكمال.
23 17 027 00010111 ETB End of Transmission Block ^W  ‏Ctrl+W يمسح الكلمة السابقة — إعداد werase في الطرفية.
24 18 030 00011000 CAN Cancel ^X  يستعمله ECMA-48 لإجهاض متتالية تحكم لم تكتمل؛ فتُسقط الطرفية المتتالية التي كانت تحلّلها.
25 19 031 00011001 EM End of Medium ^Y  نادر الاستعمال اليوم؛ وعلى BSD و macOS يكون Ctrl+Y تعليقًا مؤجلًا.
26 1A 032 00011010 SUB Substitute ^Z  علامة نهاية الملف في ملفات CP/M و DOS النصية، ولهذا تنهي كونسول Windows الإدخال بـ Ctrl+Z.
27 1B 033 00011011 ESC Escape ^[  بداية كل متتالية هروب ANSI: ‏\033[0m يعيد ضبط اللون، و \033[2J يمسح الشاشة. و Ctrl+[ يرسله أيضًا.
28 1C 034 00011100 FS File Separator ^\  تغليف MLLP في HL7 v2 يستعمله منهيًا للكتلة؛ و Ctrl+\ يرسل SIGQUIT.
29 1D 035 00011101 GS Group Separator ^]  في باركود GS1 يمثَّل فاصل FNC1 بهذا البايت — وهو الفاصل غير المرئي الذي يخرجه قارئك.
30 1E 036 00011110 RS Record Separator ^^  متتاليات JSON النصية في RFC 7464 تسبق كل سجل به. أحد الاستعمالات الحديثة القليلة الحية.
31 1F 037 00011111 US Unit Separator ^_  فاصل حقول في النصوص المهيكلة، أأمن من الفاصلة لأنه لا يظهر في المحتوى.
32 20 040 00100000 Space  
33 21 041 00100001 Exclamation Mark !
34 22 042 00100010 Quotation Mark "
35 23 043 00100011 Number Sign #
36 24 044 00100100 Dollar Sign $
37 25 045 00100101 Percent Sign %
38 26 046 00100110 Ampersand &
39 27 047 00100111 Apostrophe '
40 28 050 00101000 Left Parenthesis (
41 29 051 00101001 Right Parenthesis )
42 2A 052 00101010 Asterisk *
43 2B 053 00101011 Plus Sign +
44 2C 054 00101100 Comma ,
45 2D 055 00101101 Hyphen-Minus -
46 2E 056 00101110 Full Stop .
47 2F 057 00101111 Solidus /
48 30 060 00110000 Digit Zero 0
49 31 061 00110001 Digit One 1
50 32 062 00110010 Digit Two 2
51 33 063 00110011 Digit Three 3
52 34 064 00110100 Digit Four 4
53 35 065 00110101 Digit Five 5
54 36 066 00110110 Digit Six 6
55 37 067 00110111 Digit Seven 7
56 38 070 00111000 Digit Eight 8
57 39 071 00111001 Digit Nine 9
58 3A 072 00111010 Colon :
59 3B 073 00111011 Semicolon &#59;
60 3C 074 00111100 Less-Than Sign <
61 3D 075 00111101 Equals Sign =
62 3E 076 00111110 Greater-Than Sign >
63 3F 077 00111111 Question Mark ?
64 40 100 01000000 Commercial At @
65 41 101 01000001 Latin Capital Letter A A
66 42 102 01000010 Latin Capital Letter B B
67 43 103 01000011 Latin Capital Letter C C
68 44 104 01000100 Latin Capital Letter D D
69 45 105 01000101 Latin Capital Letter E E
70 46 106 01000110 Latin Capital Letter F F
71 47 107 01000111 Latin Capital Letter G G
72 48 110 01001000 Latin Capital Letter H H
73 49 111 01001001 Latin Capital Letter I I
74 4A 112 01001010 Latin Capital Letter J J
75 4B 113 01001011 Latin Capital Letter K K
76 4C 114 01001100 Latin Capital Letter L L
77 4D 115 01001101 Latin Capital Letter M M
78 4E 116 01001110 Latin Capital Letter N N
79 4F 117 01001111 Latin Capital Letter O O
80 50 120 01010000 Latin Capital Letter P P
81 51 121 01010001 Latin Capital Letter Q Q
82 52 122 01010010 Latin Capital Letter R R
83 53 123 01010011 Latin Capital Letter S S
84 54 124 01010100 Latin Capital Letter T T
85 55 125 01010101 Latin Capital Letter U U
86 56 126 01010110 Latin Capital Letter V V
87 57 127 01010111 Latin Capital Letter W W
88 58 130 01011000 Latin Capital Letter X X
89 59 131 01011001 Latin Capital Letter Y Y
90 5A 132 01011010 Latin Capital Letter Z Z
91 5B 133 01011011 Left Square Bracket [
92 5C 134 01011100 Reverse Solidus \
93 5D 135 01011101 Right Square Bracket ]
94 5E 136 01011110 Circumflex Accent ^
95 5F 137 01011111 Low Line _
96 60 140 01100000 Grave Accent `
97 61 141 01100001 Latin Small Letter A a
98 62 142 01100010 Latin Small Letter B b
99 63 143 01100011 Latin Small Letter C c
100 64 144 01100100 Latin Small Letter D d
101 65 145 01100101 Latin Small Letter E e
102 66 146 01100110 Latin Small Letter F f
103 67 147 01100111 Latin Small Letter G g
104 68 150 01101000 Latin Small Letter H h
105 69 151 01101001 Latin Small Letter I i
106 6A 152 01101010 Latin Small Letter J j
107 6B 153 01101011 Latin Small Letter K k
108 6C 154 01101100 Latin Small Letter L l
109 6D 155 01101101 Latin Small Letter M m
110 6E 156 01101110 Latin Small Letter N n
111 6F 157 01101111 Latin Small Letter O o
112 70 160 01110000 Latin Small Letter P p
113 71 161 01110001 Latin Small Letter Q q
114 72 162 01110010 Latin Small Letter R r
115 73 163 01110011 Latin Small Letter S s
116 74 164 01110100 Latin Small Letter T t
117 75 165 01110101 Latin Small Letter U u
118 76 166 01110110 Latin Small Letter V v
119 77 167 01110111 Latin Small Letter W w
120 78 170 01111000 Latin Small Letter X x
121 79 171 01111001 Latin Small Letter Y y
122 7A 172 01111010 Latin Small Letter Z z
123 7B 173 01111011 Left Curly Bracket {
124 7C 174 01111100 Vertical Line |
125 7D 175 01111101 Right Curly Bracket }
126 7E 176 01111110 Tilde ~
127 7F 177 01111111 DEL Delete ^?  ما يرسله مفتاح Backspace فعليًا على معظم الطرفيات. سُمّي على الشريط الورقي: الثقوب السبعة كلها مثقوبة.

عمود الثنائي محشو إلى 8 بتات لسهولة القراءة. أما ASCII نفسه فشيفرة سباعية البتات — البت الأعلى صفر دائمًا، وهذا بالضبط ما يبقي UTF-8 متوافقًا رجعيًا معه.

وماذا عن 128–255؟

لا يعرّف ASCII المدى 128–255 إطلاقًا. و«ASCII الممتد» ليس اسم أي معيار — إنه تسمية فضفاضة لعائلة كاملة من ترميزات الثمانية بتات. والبايت نفسه حرف مختلف في كل واحدة منها:

بايت ISO-8859-1 Windows-1252 CP437 CP866
0x80 U+0080 حرف تحكم C1 (غير مرئي) Ç А
0x93 U+0093 حرف تحكم C1 (غير مرئي) ô У
0xB0 ° °
0xE9 é é Θ щ
0xFF ÿ ÿ U+00A0 U+00A0
تصنيفات الأحرف تُقابَل وقت الاختبار بفئات Unicode نفسها، وخريطة Windows-1252 يجري التحقق منها بايتًا ببايت مقابل مفكّك ترميز المنصّة. — فريق هندسة Go-Tools · Sep 2, 2026

كل قيمة في الجدول تولّدها المحرّكة نفسها التي يشغّلها الخادم والمتصفح معًا، فما يقرأه الزاحف وما تتفاعل معه أنت لا يمكن أن يفترقا. أما فروق تسلسلات الهروب بين اللغات فقد جرى التحقق منها ببناء الشيفرة وتشغيلها في كل لغة، لا نقلًا عن الذاكرة.

مرجع سريع

ما شيفرة ASCII للحرف A؟

A = 65 الحرف الكبير `A` هو 65 بالعشري، و`0x41` بالست عشري، و`101` بالثماني، و`01000001` بالثنائي. والصغير `a` هو 97 — أكثر بـ32 بالضبط، أي بت واحد.

كم حرفًا في ASCII؟

128 ‏128، مرقّمة من 0 إلى 127. منها 32 حرف تحكم، و95 حرفًا رسوميًا بحساب المسافة، وDEL.

ما هو ASCII صفر؟

0 = NUL NUL، الحرف الخالي. ينهي السلاسل النصية في C، ويفصل أسماء الملفات في `find -print0`، ويجعل `grep` يعامل الملف كملف ثنائي.

أي بايت هو سطر جديد؟

LF = 10, CR = 13 تغذية السطر LF هي 10 ‏(`0x0A`، `\n`). والإرجاع CR هو 13 ‏(`0x0D`، `\r`). ونهايات أسطر Windows هما الاثنان معًا، وCR أولًا.

ما هو ASCII؟

ASCII ترميز محارف بسبعة بتات — 128 نقطة ترميز مرقّمة من 0 إلى 127، ولا شيء بعدها. نُشر أول مرة باسم ASA X3.4-1963 وصيغته الحالية ANSI X3.4-1986؛ ويصف RFC 20 استعماله على الإنترنت، وقد رُفع إلى معيار الإنترنت STD 80 سنة 2015. النسخة الأولى لم تكن فيها حروف صغيرة إطلاقًا، وإنما أُضيفت في مراجعة 1967. وكل ما فوق 127 يخصّ ترميزًا آخر لا ASCII.

0x00-0x1F   32 C0 control characters
0x20         1 space (a graphic character, not a control)
0x21-0x7E   94 printable graphic characters
0x7F         1 DEL (a control character, but not part of C0)
            ---
            128 total

ماذا يمنحك هذا الجدول

أربعة أسس جنبًا إلى جنب

العشري والست عشري والثماني والثنائي بثمانية بتات لكل واحدة من نقاط الترميز الـ128، مع الصفر البادئ الذي يذكّرك أن ASCII سباعي البتات في الحقيقة.

تسلسلات الهروب لكل لغة

عمود \0 \a \b \t \n \v \f \r وإلى جانبه الفروق التي تكسر البناء فعلًا — JavaScript بلا \a، وJava بلا \a ولا \v، و\e امتداد GNU لا ISO C.

تدوين caret

عمود من ^@ إلى ^?، والقاعدة الواحدة التي تغطي أحرف التحكم الـ33 كلها: XOR للبايت مع 0x40. لا جمع ولا طرح — بل XOR.

أين تصادف كل حرف تحكم فعلًا

لا «SOH — بداية ترويسة» فحسب، بل أن بروتوكول FIX المالي يستعمله فاصلًا للحقول، وأن 0x1D هو الفاصل غير المرئي الذي يخرجه قارئ الباركود، وأن تجميد الطرفية بـCtrl+S هو XOFF.

محوّل يرفض التخمين

الأساس تختاره أنت. والبايتات فوق 127 تُرفض مع ملاحظة عن قراءتها في Windows-1252 وISO-8859-1، بدل تمريرها على أنها ASCII.

أحرف التحكم تبقى ظاهرة

NUL وTAB وCR بلا شكل مرسوم، لذلك تعرضها المعاينة بأحرف Unicode Control Pictures. وزر النسخ يعطيك البايتات الحقيقية.

ترميزات ذات صلة

ISO/IEC 8859-1 ‏(Latin-1)

ثمانية بتات، بايت واحد

يُبقي 0–127 مطابقًا لـASCII، ويعرّف 96 حرفًا رسوميًا من 0xA0 إلى 0xFF. أما المدى 0x800x9F فمتروك لأحرف تحكم C1 غير مرئية.

Windows-1252

ثمانية بتات، بايت واحد

مجموعة عليا من ISO-8859-1 فارقها الوحيد في 0x800x9F، حيث تضع 27 حرفًا قابلًا للطباعة وتترك 5 مواضع غير معرّفة. والمتصفحات تستعملها كلما ادّعت الصفحة أنها ISO-8859-1.

CP437

ثمانية بتات، بايت واحد

صفحة الترميز الأصلية لحاسوب IBM PC. نصفها الأعلى حروف بعلامات نبرة وحروف يونانية وأحرف رسم الجداول — وهي الجداول التي تراها في المقالات التي تعدك بـ256 حرف ASCII.

UTF-8

متغير الطول، 1–4 بايتات

يرمّز Unicode كله مع إبقاء كل بايت ASCII مطابقًا بايتًا ببايت. متوافق رجعيًا مع US-ASCII، لكنه غير متوافق مع أي من صفحات الترميز الثمانية بتات أعلاه.

أمثلة

من النص إلى الشيفرات العشرية

Hello
72 101 108 108 111

كل حرف يصير نقطة الترميز العشرية الخاصة به. الحروف الكبيرة من 65 إلى 90 والصغيرة من 97 إلى 122 — بفارق 32 بالضبط، ولهذا فإن قلب البت الخامس يبدّل حالة الحرف.

الشيفرات نفسها مقروءة بأساسين

41 42 43
hex -> ABC     decimal -> )*+

لهذا لا تخمّن الأداة الأساس نيابة عنك أبدًا. القراءتان صحيحتان معًا، وأنت وحدك تعرف أيهما قصدت.

أحرف التحكم تنجو من الرحلة ذهابًا وعودة

9 10 13 0
TAB, LF, CR, NUL

هي غير مرئية في صندوق الناتج، لذلك يعرضها سطر المعاينة بأحرف Unicode Control Pictures. وزر النسخ ما زال ينسخ البايتات الحقيقية لا البدائل.

البايتات فوق 127 مرفوضة، مع تفسير

233
Outside ASCII (0-127)

‏233 ليست شيفرة ASCII. تخبرك الأداة أنها تُقرأ é في Windows-1252 وISO-8859-1 معًا، لكنها لن تدّعي أن ذلك ASCII.

طريقة الاستخدام

  1. 1

    اختر الأساس

    عشري أو ست عشري أو ثماني أو ثنائي. ابدأ بهذه الخطوة — الأرقام نفسها تُفكّ بنتائج مختلفة في كل أساس، والأداة تتعمّد ألا تخمّن.

  2. 2

    اكتب في أي من الجهتين

    النص في حقل، والشيفرات في الحقل الآخر. أيّهما كتبت فيه، تحدّث الآخر فورًا.

  3. 3

    اقرأ التنبيهات

    الأحرف الخارجة عن 0–127 تُذكر مع نقطة ترميزها وبايتات UTF-8 بدل أن تُحذف بصمت أو تُستبدل بعلامات استفهام.

  4. 4

    استعمل الجدول مرجعًا

    اقصره على أحرف التحكم، أو ابحث بالشيفرة أو الاسم، وانقر أي حرف لنسخه.

أخطاء يجدر بك معرفتها

ادّعاء أن ASCII فيه 256 حرفًا

ASCII يتوقف عند 127. وكل ما بعده يخصّ صفحة ترميز ثمانية بتات بعينها يجب تسميتها. وPython سيقول لك ذلك مباشرة إن طلبت منه ترميز حرف بعلامة نبرة على أنه ASCII.

✗ خطأ
'cafe\u00e9'.encode('ascii')  # UnicodeEncodeError: ordinal not in range(128)
✓ صحيح
'cafe\u00e9'.encode('utf-8')   # b'cafe\xc3\xa9'

افتراض أن كل اللغات لها تسلسلات الهروب نفسها

JavaScript ليس فيه هروب \a. وبدل أن يفشل، يُسقط الشرطة المائلة العكسية ويترك لك الحرف، والوضع الصارم لا ينقذك.

✗ خطأ
"\a".charCodeAt(0)   // 97 - that is the letter 'a', not BEL
✓ صحيح
"\x07".charCodeAt(0) // 7 - BEL

شرح تدوين caret بوصفه جمعًا

إضافة 0x40 تنجح في مدى C0 ثم تنكسر عند DEL، حيث يلزمك الطرح بدلها. وXOR هي القاعدة الواحدة التي تغطي الـ33 كلها.

✗ خطأ
caret = chr(code + 0x40)   # 0x7F + 0x40 overflows past the table
✓ صحيح
caret = chr(code ^ 0x40)   # 0x00 -> @, 0x1B -> [, 0x7F -> ?

متى تحتاجه

قراءة مقتطف ست عشري أو أثر بروتوكول
بين يديك بايتات وتحتاج أن تعرف أيها قابل للطباعة، وأيها فواصل، وأيها شيفرات تحكم تنفّذها الطرفية بهدوء.
تشخيص ملف يتصرف بغرابة
حرف CR شارد في نهاية كل سطر، أو NUL يجعل grep يعدّ الملف ثنائيًا، أو مسافات مكان TAB الذي يطلبه Makefile.
كتابة محلّل أو مدقّق
تحديد نطاقات البايتات المقبولة وضبط الحدود بدقة — 0x210x7E للأحرف الرسومية، و0x20 للمسافة، و0x7F لـDEL.
شرح عطل في الترميز
أن تبيّن لزميلك لماذا يظهر البايت نفسه بثلاثة أحرف مختلفة تبعًا لصفحة الترميز التي افترضها القارئ.

تفاصيل تقنية

ASCII وUnicode وUTF-8
نقاط Unicode الأولى الـ128، من U+0000 إلى U+007F، تقابل ASCII واحدة بواحدة. ويرمّزها UTF-8 ببايت واحد 0x000x7F والبت الأعلى صفر. والخاصية التي تحمل الثقل هي الثالثة: كل بايت في متتالية UTF-8 متعددة البايتات بِتُّه الأعلى واحد، فلا يمكن لبايت في المدى 0–127 أن يكون جزءًا من حرف غير ASCII أبدًا. هذا هو أساس القول إن مسح UTF-8 بايتًا بايتًا بحثًا عن / أو \0 أو \n آمن.
البت الثامن
يعرّف ASCII شيفرة سباعية البتات؛ أما تخزين حرف واحد في بايت من ثمانية بتات فهو عُرف تخزيني، وتاريخيًا كان ذلك البت الفائض يُستعمل غالبًا بت تكافؤ. ووسائط البريد التي كانت تضمن شفافية سبعة بتات فقط هي سبب وجود Base64 وquoted-printable.
لماذا رُتّبت الأبجدية هكذا
الأرقام 09 تقع في 0x300x39، فالنصف الأدنى من البايت هو القيمة نفسها. وA هو 0x41 وa هو 0x61 — بينهما بت واحد، لذا c | 0x20 يحوّل إلى صغير وc & 0xDF يحوّل إلى كبير. لكن هذا للحروف فقط: '_' | 0x20 يعطي 0x7F أي DEL، و'[' | 0x20 يعطي {.
المتغيرات الوطنية ومشكلة 0x5C
أتاح ISO/IEC 646 استبدال 12 نقطة ترميز حسب البلد. فجعلت اليابان في JIS X 0201 الموضع 0x5C علامة الين، وجعلته كوريا في KS X 1003 علامة الوون — ولهذا يعرض Windows الياباني المسارات بعلامة الين بينما البايت ما زال 0x5C. والأمر أسوأ في Shift_JIS، حيث قد يكون البايت الثاني من حرف ثنائي البايت هو 0x5C نفسه: الأحرف 表 و ソ و 十 و 能 و 構 و 暴 كلها تنتهي به، فتشطرها المعالجة الساذجة للشرطة المائلة العكسية نصفين.

كيف تكتبه بشكل صحيح

سمِّ صفحة الترميز دائمًا
قول «ASCII الممتد» لا يخبر القارئ بشيء. قل Windows-1252 أو ISO-8859-1 أو CP437 — فالبايت نفسه حرف مختلف في كل واحدة.
اكتب US-ASCII حين تقصدها
هذا هو الاسم المسجّل لدى IANA. وcharset=ascii ليس هو، أما charset=ISO-8859-1 في المتصفح فسيعطيك Windows-1252 فعليًا، لأن معيار الترميز في WHATWG يربط هذه التسمية بها.
لا تخمّن الأساس نيابة عن المستخدم
إذا قررت أداتك أو محلّلك بصمت أن 41 ست عشري، فسيكون مخطئًا في نصف الحالات تقريبًا، والفشل صامت.
كرّر على نقاط الترميز لا على وحدات UTF-16
"A" مع مفتاح صول موسيقي مع حرف صيني طوله .length === 4 بينما عدد الأحرف ثلاثة فقط. استعمل [...str] أو codePointAt، وإلا فستُبلغ رسالة «حرف غير مدعوم» عن رمز تعبيري بوصفه نصفين مكسورين.

أسئلة شائعة

كم حرفًا في ASCII؟
‏128. ASCII ترميز بسبعة بتات، فهو يعرّف بالضبط نقاط الترميز من 0 إلى 127: 32 حرف تحكم من مجموعة C0، و95 حرفًا رسوميًا تشمل المسافة، وDEL. المقالات التي تحمل عنوان «جدول ASCII الكامل بـ256 حرفًا» تعرض عليك صفحة ترميز ثمانية بتات بعينها — غالبًا CP437 أو Windows-1252 — لا ASCII.
ما هو ASCII الممتد؟
لا شيء، بالمعنى الدقيق. «ASCII الممتد» ليس اسم أي معيار؛ إنه تسمية فضفاضة لعائلة كاملة من ترميزات الثمانية بتات تُبقي 0–127 كما هي وتعرّف 128–255 كلٌّ على طريقتها. البايت 0xE9 هو é في ISO-8859-1، والحرف اليوناني Θ في CP437، وحرف سيريلي في CP866. من دون تسمية صفحة الترميز يبقى السؤال بلا جواب.
هل Windows-1252 هو نفسه ISO-8859-1؟
هما متطابقان تمامًا من 0xA0 إلى 0xFF، ومختلفان تمامًا من 0x80 إلى 0x9F. يترك ISO-8859-1 ذلك النطاق لأحرف تحكم C1 غير مرئية؛ بينما يضع Windows-1252 فيه 27 حرفًا قابلًا للطباعة — علامة اليورو وعلامات الاقتباس المنحنية والشرطة القصيرة والشرطة الطويلة — ويترك 5 مواضع غير معرّفة. لهذا فإن علامة اقتباس منحنية منسوخة من معالج نصوص تتحول إلى حرف تحكم غير مرئي حين تمر عبر شيء هو ISO-8859-1 حقًا.
هل DEL حرف تحكم؟
نعم. يصنّف Unicode النقطة U+007F ضمن Cc، ودالة iscntrl(127) في لغة C تُرجع صوابًا. هو فقط ليس جزءًا من مجموعة C0 التي تقتصر بدقة على 0x000x1F. ويقع في نهاية الجدول بسبب الشريط الورقي: 0x7F يعني سبعة ثقوب مثقوبة كلها، وما إن تثقب ثقبًا حتى يستحيل ردّه، فكان «ثقب الكل» الطريقة الوحيدة لوسم حرف بأنه محذوف.
هل المسافة حرف تحكم؟
لا، وكثير من جداول ASCII يخطئ هنا. يصنّف Unicode المسافة (0x20) ضمن Zs، أي فاصل مسافة، وهو حرف رسومي. أحرف التحكم هي 0x000x1F و0x7F فقط.
لماذا يعرض عمود الثنائي 8 بتات إذا كان ASCII بسبعة بتات؟
لأن البايت هو الوحدة التي يُخزَّن فيها كل شيء فعلًا — والبت الأعلى يبقى صفرًا دائمًا. وهذا الحشو ليس تجميليًا: لأن ASCII لا يستعمل البت الثامن أبدًا، استطاع UTF-8 أن يحجزه علامةً تقول «هذا جزء من متتالية متعددة البايتات»، وهو بالضبط ما يجعل UTF-8 متوافقًا رجعيًا مع ASCII.
هل تكتب كل اللغات أحرف التحكم بالطريقة نفسها؟
لا، والفروق تعضّ. \a (الجرس) قياسي في C وPython، لكن JavaScript لا يملك هذا الهروب أصلًا'\a' يصير بصمت الحرف a، بلا خطأ حتى في الوضع الصارم. وJava ترفض \a و\v معًا. وGo ترفض \0 لأن هروبها الثماني يجب أن يكون من ثلاث خانات بالضبط، فتكتب \000. أما \e لحرف ESC فهو امتداد GNU لا معيار ISO C.
ما معنى ^M في git diff أو في vim؟
هو حرف الإرجاع، البايت 13. يكتب تدوين caret حرفَ التحكم بإجراء XOR بين قيمته و0x40، فيصير CR ‏(0x0D) هو ^M ويصير ESC ‏(0x1B) هو ^[. ورؤية ^M في نهاية كل سطر تعني أن الملف يستعمل نهايات أسطر CRLF الخاصة بـWindows؛ ورؤية bad interpreter: /bin/bash^M تعني أن سكربت الصدفة التقطها.

أدوات ذات صلة

عرض جميع الأدوات →

محوّل Base64 — ترميز وفك ترميز أونلاين

الترميز والتنسيق

رمّز وفك ترميز Base64 مجاناً أونلاين — محوّل فوري مع دعم UTF-8 والرموز التعبيرية. خصوصية 100% — يعمل في متصفّحك. جرّبه الآن.

محوّل Base64 إلى صورة أونلاين

الترميز والتنسيق

فك ترميز سلسلة Base64 أو عنوان URI للبيانات إلى صورة داخل متصفّحك. عاين واقرأ الأبعاد ونوع MIME ثم نزّل كـ PNG أو JPG أو GIF أو SVG. بلا رفع.

محوّل CSV إلى JSON

الترميز والتنسيق

حوّل CSV إلى JSON في متصفحك. RFC 4180، استنتاج الأنواع، صف العنوان، أمان الأعداد الكبيرة. خصوصية 100%.

محوّل .env إلى JSON

الترميز والتنسيق

الصق ملف .env واحصل على JSON فورًا. كلمات مرور قاعدة بياناتك ومفاتيح API لا تغادر متصفحك أبدًا — خاص 100٪، بلا رفع، محلّل dotenv مجاني.

فكّ كيانات HTML المجانية — فكّ تهريب الرموز

الترميز والتنسيق

فُكّ كيانات HTML وفُكّ تهريب HTML أونلاين — مجانًا، بلا تسجيل، 100% داخل متصفحك. يحوّل المراجع بالاسم والعشرية والسداسية إلى أحرف؛ لا يُرفع أبدًا.

ترميز كيانات HTML المجانية — تهريب الرموز

الترميز والتنسيق

رمّز كيانات HTML وهرّب الأحرف الخاصة (< > & " ') أونلاين — مجانًا، بلا تسجيل، 100% داخل متصفحك. خرج بالاسم أو العشري أو السداسي عشري؛ لا يُرفع أبدًا.