اسکی (استاندارد)
استاندارد آمریکایی برای تبادل اطلاعات یا به اختصار اَسکی یک نوع استاندارد کدبندی نویسه برای ارتباطات الکترونیکی است. کدهای اسکی نمایشگر متن در رایانه‌ها، تجهیزات ارتباط از راه دور و سایر دستگاه‌ها است. بیشتر طرح‌های کدبندی نویسه جدید بر اساس اسکی می‌باشند، اگرچه آن‌ها امکان پشتیانی از بسیاری از نویسه‌های اضافی را دارند.
متصدی انتساب اعداد در اینترنت (IANA) نام US-ASCII را برای این کدبندی نویسه ترجیح می‌دهد.
اسکی یکی از است.
ASCII از کد تلگراف تهیه شده‌است. اولین استفاده تجاری آن به عنوان یک کد تله پرینتر هفت بیتی بود که توسط خدمات داده بل عرضه شد. کار بر روی استاندارد ASCII از ۶ اکتبر ۱۹۶۰ با اولین جلسه انجمن استانداردهای آمریکایی (اکنون موسسه استاندارد ملی آمریکا یا ANSI) فرعی X3.2 آغاز شد. چاپ اول این استاندارد در سال ۱۹۶۳ منتشر شد، تحت تجدید نظر در طول سال ۱۹۶۷، و جدیدترین بروزرسانی خود را در سال ۱۹۸۶ تجربه کرد. در مقایسه با کدهای تلگراف قبلی، کد پیشنهادی Bell و ASCII برای مرتب‌سازی راحت تر لیست‌ها (به عنوان مثال، الفبا کردن) لیست‌ها سفارش داده شده‌اند، و ویژگی‌های دیگری به غیر از تله پرینتر اضافه شده‌است.
در اصل مبتنی بر الفبای انگلیسی، ASCII 128 کاراکتر مشخص شده را به صورت عدد صحیح هفت بیتی، همان‌طور که در نمودار ASCII نشان داده شده‌است، رمزگذاری می‌کند. نود و پنج از شخصیت‌های رمزگذاری شده قابل چاپ هستند: اینها شامل رقم‌های "۰" تا "۹"، حروف کوچک "a" تا "z"، حروف بزرگ "A" تا "Z" و نمادهای نقطه گذاری است. علاوه بر این، مشخصات اصلی ASCII شامل ۳۳ کد کنترل غیر چاپی بود که از دستگاه‌های Teletype سرچشمه می‌گرفتند. بسیاری از این موارد اکنون منسوخ شده‌اند، اگرچه تعداد معدودی از آنها هنوز هم به‌طور معمول مورد استفاده قرار می‌گیرند، مانند بازگشت کالسکه، کدهای خوراک خط و برگه‌ها.
به عنوان مثال، حروف کوچک "من" خواهد بود در را پشتیبانی می‌کند ASCII توسط نمایندگی های باینری ۱۱۰۱۰۰۱ = هگزادسیمال ۶۹ "(من" نامه نهم است) = دهدهی ۱۰۵.
کد استاندارد آمریکا برای تبادل اطلاعات تحت نظارت کمیته انجمن استانداردهای آمریکا با نام کمیته اکس ۳ توسط کمیته فرعی اکس ۳٫۲) و بعداً توسط آن کمیته فرعی اکس ۳ تدوین شد. ۲٫۴ کارگروه به موسسه استاندارد ایالات متحده آمریکا تبدیل شد و نهایتاً انستیتوی استاندارد ملی آمریکا (ANSI).
ASCII با وجود سایر شخصیت‌های خاص و کدهای کنترل پر شده، به عنوان اکس ۳٫۴–۱۹۶۳ منتشر شد، ۲۸ موقعیت کد را بدون هیچ معنای مشخصی اختصاص داده، برای استاندارد سازی آینده و یک کد کنترل نشده واگذار کرد. در آن زمان بحث‌هایی مطرح شد که آیا باید شخصیت‌های کنترل بیشتری وجود داشته باشد تا الفبای کوچک. این بی احتیاط چندان دوام نیاورد: در ماه مه ۱۹۶۳، کارگروه CCITT بر روی الفبای جدید تلگراف پیشنهاد کرد که حروف کوچک را به "چوب بکشید" ۶ و ۷، و سازمان بین‌المللی استانداردسازی TC 97 SC 2 در ماه اکتبر رای دادند که تغییر را در پیش نویس استاندارد خود بگنجاند. کارگروه اکس ۴-۲-۳ در جلسه مه ۱۹۶۳ موافقت خود را برای تغییر ASCII اعلام کرد. قرار دادن حروف کوچک در "میله های" ۶ و ۷ باعث شد شخصیت‌ها با یک بیت واحد در الگوی بیت از پرونده بزرگ تفاوت داشته باشند که این امر تطبیق کاراکتر بی حساس و ساخت صفحه کلید و چاپگر را ساده می‌کند. در استاندارد اکس۳٫۱۵، کمیته اکس ۳ همچنین به نحوه انتقال اسکی (حداقل بیت قابل توجهی در ابتدا)، و چگونگی ثبت آن در نوار سوراخ شده پرداخته‌است. آنها برای نوار مغناطیسی استاندارد ۹ ردیابی را پیشنهاد کردند و تلاش کردند تا با برخی از قالب‌های کارت پانچ شده مقابله کنند.
فرعی ASCII اکس ۳٫۲ را بر اساس سیستم‌های رمزگذاری قبلی تلپرینتر طراحی کرده‌است. مانند سایر سیستم‌های کد گذاری شخصیت، مکاتبات بین الگوهای دیجیتال بیتی و ASCII مشخص شخصیت علامت (یعنی تک‌نگاره و شخصیت‌های کنترل). این امر به دستگاه‌های دیجیتال اجازه می‌دهد تا با یکدیگر ارتباط برقرار کرده و اطلاعات شخصیت گرا مانند زبان نوشتاری را پردازش، ذخیره و ارتباط برقرار کنند. قبل از توسعه اسکی، کدگذاری‌های مورد استفاده شامل ۲۶ کاراکتر الفبایی، ۱۰ رقم عددی و ۱۱ تا ۲۵ نماد گرافیکی ویژه بود. شامل همه اینها، و شخصیتهای کنترل سازگار با الفبای بین‌المللی تلگراف شماره ۲ استاندارد ۱۹۲۴، بیش از ۶۴ کد برای اسکی لازم بود.
ITA2 به نوبه خود بر اساس کد تلگراف ۵ بیتی - امیل باودوت اختراع شده در سال ۱۸۷۰ و در سال ۱۸۷۴ ثبت اختراع شد.
این کمیته در مورد امکان عملکرد تغییر بحث کرد، که اجازه می‌دهد بیش از ۶۴ کد توسط یک کد شش بیتی ارائه شود. در یک کد تغییر یافته، برخی از کدهای کاراکتر گزینه‌های بین گزینه‌های مربوط به کد شخصیت‌های زیر را تعیین می‌کنند. این برنامه‌نویسی را به صورت کامپکت امکان‌پذیر می‌کند، اما برای انتقال داده از اعتبار کمتری برخوردار است، زیرا خطایی در انتقال کد تغییر به‌طور معمول باعث می‌شود قسمت طولانی انتقال قابل خواندن نباشد. کمیته استاندارد تصمیم به مخالفت با تغییر داد، بنابراین اسکی حداقل به یک کد هفت بیتی نیاز داشت.
این کمیته یک کد هشت بیتی را در نظر گرفت، زیرا هشت بیت (اکتت) به دو الگوی چهار بیتی اجازه می‌دهد تا به‌طور مؤثر دو رقم را با اعشاری کد باینری رمزگذاری کنند. با این حال، نیاز به همه انتقال داده‌ها برای ارسال هشت بیت در صورت کافی بودن هفت مورد است. کمیته رای داد که از یک کد هفت بیتی استفاده شود تا هزینه‌های مرتبط با انتقال داده‌ها به حداقل برسد. از آنجا که نوار سوراخ در آن زمان می‌تواند هشت بیت در یک وضعیت ضبط، آن را نیز برای اجازه بیت توازن برای چک کردن خطا در صورت دلخواه. ماشینهای هشت بیتی (با هشت پا به عنوان نوع داده بومی) که از بررسی برابری استفاده نمی‌کردند، بطور معمول بیت هشتم را روی ۰ قرار می‌دهند. در بعضی از چاپگرها از بیت بالا برای فعال کردن چاپ ایتالیا استفاده شده‌است
کد به خودی خود به گونه ای الگوبرداری شده بود که بیشتر کدهای کنترل در کنار هم قرار داشتند و همه کدهای گرافیکی برای سهولت در شناسایی با هم بودند. دو "چوب" اول به اصطلاح "ASCII" (۳۲ موقعیت) برای شخصیت‌های کنترل محفوظ بودند. "فضاً شخصیت به حال به قبل گرافیک می‌آیند را به مرتب‌سازی آسان‌تر، پس از آن موقعیت شد 20 ؛ به همین دلیل، بسیاری از علائم ویژه که معمولاً به عنوان جداکننده استفاده می‌شوند قبل از رقم‌ها قرار داده شده‌اند. کمیته تصمیم گرفت پشتیبانی از حروف بزرگ ۶۴ کاراکتر مهم باشد، و الگوی ASCII را انتخاب کرد، بنابراین می‌تواند به راحتی به یک مجموعه ۶۴ کاراکتری از کدهای گرافیکی کاهش یابد، همان‌طور که در کد (۱۹۶۳) انجام شد؛ بنابراین حروف کوچک با حروف بزرگ در هم تنیده نبودند. برای در دسترس نگه داشتن گزینه‌ها برای حروف کوچک و سایر گرافیک‌ها، کدهای مخصوص و عددی قبل از حروف ترتیب داده شدند، و نامه "A" در موقعیت 41 قرار داده شد تا با پیش نویس استاندارد انگلیسی مربوطه مطابقت داشته باشد. ارقام ۰–۹ با ۰۱۱ پیشوند است، اما ۴ بیت باقی مانده با مقادیر مربوط به آنها به صورت باینری مطابقت دارد، و تبدیل آن را با اعشاری رمزگذاری شده دودویی ساده می‌کند.
بسیاری از شخصیت‌های غیر الفبایی برای مطابقت با موقعیت تغییر یافته خود در ماشین تحریرها قرار گرفتند. ظرایف مهم این است که اینها بر اساس ماشین تحریرهای "مکانیکی" بوده نه ماشین تحریر "برقی". ماشین تحریرهای مکانیکی از استاندارد تعیین شده توسط رمینگتون شماره 2 (1878)، اولین ماشین تحریر با کلید تغییر، و مقادیر تغییر یافته codice_1 codice_2 ماشین تحریرهای اولیه "۰" و "۱ را" حذف کردند و در عوض از "O" (حرف بزرگ "O") و "l" (نامه کوچک "L") استفاده کردند، اما codice_3 و codice_4 جفت یک بار ۰ و ۱ عادی شد؛ بنابراین، در ASCII codice_5 در چوب دوم قرار گرفت، موقعیت ۱–۵، مربوط به رقم ۱–۵ در چوب مجاور. این حال پرانتز نمی‌تواند مطابق با "۹" و "۰ باشد"، زیرا مکان مربوط به "۰" توسط شخصیت فضایی گرفته شده‌است. این با حذف codice_6 (تأکید) از "۶" و تغییر شخصیت‌های باقی مانده، تنظیم شده‌است، که مربوط به بسیاری از ماشین‌های نویس اروپایی است که پرانتز را با "۸" و "۹ قرار داده‌اند". این اختلاف از ماشین تحریرها منجر به صفحه کلیدهای زوج کمی، به ویژه مدل Teletype 33 شد که از طرح چپ تغییر یافته مطابق ASCII استفاده می‌کرد، نه به ماشین تحریرهای مکانیکی سنتی. ماشین تحریر برقی، به ویژه IBM (1961)، از یک طرح متفاوت متفاوت استفاده کرده‌است که در رایانه‌ها استاندارد شده‌است. پیروی از IBM PC (1981)، به خصوص مدلM (1984) و بنابراین مقادیر تغییر نمادها در صفحه کلیدهای مدرن مطابق جدولهای اسکی با صفحه کلیدهای قبلی مطابقت ندارد. codice_7 جفت همچنین به شماره شماره ۲، و codice_8 در بعضی از صفحه کلیدها از جفت استفاده شده‌است (بعضی دیگر، از جمله شماره ۲، تغییر نکرده‌اند codice_9 (کاما) یا codice_10 (توقف کامل) بنابراین می‌توان آنها را در حروف بزرگ و بدون تغییر استفاده کرد)). با این حال، ASCII تقسیم codice_11 جفت (قدمت شماره ۲)، و نمادهای ریاضی دوباره ترتیب داده شده (قراردادهای متنوع، معمولاً codice_12) را به codice_13 .
برخی از شخصیت‌های معمولی، به ویژه codice_14 ، در حالی که codice_15 as به عنوان دیاکریتیک برای استفاده‌های بین‌المللی و codice_16 برای استفاده ریاضی، همراه با شخصیت‌های خط ساده codice_17 (علاوه بر رایج codice_18). از "@" نماد در قاره اروپا مورد استفاده قرار گرفت و کمیته انتظار می‌رود این امر می‌تواند توسط یک "À" لهجه در تنوع فرانسه جایگزین، به طوری که در موقعیت "@" ۴۰ قرار داده شد درست قبل از A. نامه،
کدهای کنترل که برای انتقال داده ضروری هستند عبارتند از: شروع پیام ، انتهای آدرس ، انتهای پیام ، انتهای انتقال، "شما کی هستید؟"، "تو هستی؟"، یک کنترل دستگاه رزرو شده، بیکار همزمان و تأیید. اینها برای به حداکثر رساندن فاصله Hamming بین الگوهای بیت خود قرار گرفتند.
سفارش کد ASCII به ترتیب اکسی بتیکال نیز گفته می‌شود. جمع‌بندی داده‌ها گاه به جای ترتیب حروف الفبا «استاندارد» (دنباله جمع‌آوری) در این ترتیب انجام می‌شود. انحرافات اصلی در سفارش اسکی عبارتند از:
قبل از مقایسه مقادیر ASCII، یک دستور واسطه حروف بزرگ را به حروف کوچک تبدیل می‌کند.
ASCII 32 کد اول (اعداد ۰–۳۱ اعشار) را برای کاراکترهای کنترلی ذخیره می‌کند: کدهایی که در ابتدا به منظور نمایش اطلاعات قابل چاپ نبودند بلکه برای کنترل دستگاه‌هایی (مانند چاپگرها) که از اسکی استفاده می‌کنند، یا اطلاعات متا دربارهٔ داده‌ها ارائه می‌دهد ، ذخیره شده‌است. جریانی مانند موارد ذخیره شده در نوار مغناطیسی.
به عنوان مثال، کاراکتر ۱۰ عملکرد «خط خط» (که باعث می‌شود چاپگر کاغذ خود را پیش ببرد) نشان می‌دهد، و شخصیت ۸ نمایانگر «فضای پشتی» است. به کاراکترهای کنترلی اشاره دارد که شامل بازگشت کالسکه، خوراک خط یا فضای سفید به عنوان شخصیت‌های کنترل فضای غیر فضایی نیست. به جز کاراکترهای کنترل که قالب بندی خطی ابتدایی را تعریف می‌کنند، ASCII هیچ مکانیسمی برای توصیف ساختار یا ظاهر متن درون یک سند تعریف نمی‌کند. طرح‌های دیگر، مانند زبان‌های نشانه گذاری، صفحه آدرس و طرح اسناد و قالب بندی.
استاندارد ASCII اصلی فقط از عبارات توصیفی کوتاه برای هر شخصیت کنترل استفاده می‌شود. ابهام ایجاد شده در بعضی اوقات عمدی بود، برای مثال در جایی که یک کاراکتر با استفاده از پیوند پایانه کمی متفاوت از جریان داده و گاهی اوقات تصادفی به عنوان مثال با معنی «حذف» استفاده می‌شود.
احتمالاً تأثیرگذارترین دستگاه منفرد در تفسیر این شخصیت‌ها، Teletype Model 33 ASR بود که یک ترمینال چاپ با گزینه خواننده / پانچ نوار در دسترس بود. نوار کاغذی وسیله ای بسیار پرطرفدار برای ذخیره برنامه طولانی مدت تا دهه ۱۹۸۰ بود، کم هزینه تر و از بعضی جهات شکننده تر از نوار مغناطیسی. به‌طور خاص، تعیین تکلیف دستگاه Teletype Model 33 برای کدهای 17 (Control-Q، DC1، همچنین با نام XON)، 19 (Control-S، DC3، همچنین با عنوان XOFF شناخته می‌شود) و 127 (Delete) به استانداردهای واقعی تبدیل شدند. مدل ۳۳ همچنین به دلیل توصیف Control-G (کد ۷، BEL، به معنای قابل شنیدن صدای هشدار از طرف اپراتور) به معنای واقعی کلمه قابل توجه بود، زیرا این واحد دارای یک زنگ واقعی بود که هنگام دریافت یک شخصیت BEL به آن زنگ زد. از آنجا که کلید اصلی کلید O همچنین نمادی از فلش سمت چپ را نشان می‌دهد (از ASCII-1963 که این شخصیت را به جای زیرکاره داشت)، استفاده نامتناسب از کد 15 (Control-O، Shift In) به عنوان «حذف کاراکتر قبلی» تعبیر شده‌است. همچنین توسط بسیاری از سیستم‌های زمان‌بندی اولیه به تصویب رسید اما در نهایت مورد بی‌توجهی قرار گرفت.
Teletype نمی‌تواند سر را به عقب منتقل کند، بنابراین برای ارسال یک BS (فضای پشتی) یک کلید روی صفحه کلید قرار نمی‌دهد. در عوض، یک کلید مشخص شده با صدای که کد 127 (DEL) را ارسال می‌کرد. هدف از این کلید پاک کردن اشتباهات در یک نوار کاغذی با دست بود: اپراتور برای پشتیبان‌گیری از آن باید یک دکمه را روی پانچ نوار فشار دهد، سپس روبوت را تایپ کند، که همه سوراخ‌ها را سوراخ کرده و خطا را با کاراکتر جایگزین کرد. قرار بود نادیده گرفته شود Teletypes معمولاً برای رایانه‌های کم هزینه از شرکت تجهیزات دیجیتال استفاده می‌شد، بنابراین این سیستم‌ها مجبور بودند از کلید موجود و در نتیجه کد DEL برای پاک کردن شخصیت قبلی استفاده کنند. به همین دلیل، پایانه‌های ویدیویی DEC (بصورت پیش فرض) کد DEL را برای کلید مشخص شده "Backspace" ارسال می‌کردند در حالی که کلید مشخص شده "Delete" دنباله فرار را ارسال می‌کرد، در حالی که بسیاری از ترمینال‌های دیگر BS را برای کلید Backspace ارسال می‌کردند. درایور ترمینال یونیکس تنها می‌تواند از یک کد برای پاک کردن شخصیت قبلی استفاده کند، این می‌تواند روی BS "یا" DEL تنظیم شود، اما نه هر دو، منجر به یک دوره طولانی دلخوری شد که کاربران مجبور بودند بسته به نوع ترمینال مورد استفاده خود، آن را تصحیح کنند؛ که امکان ویرایش خط، مانند ksh، پوسته Bash و زی شل را دارند، هر دو را درک می‌کنند). این فرض که هیچ کلید BS را ارسال نکرد، باعث شد از Control + H برای اهداف دیگری مانند دستور پیشوند "help" در گنو ایمکس استفاده شود.
بسیاری از کدهای کنترل به معانی کاملاً متفاوت از کدهای اصلی داده شده‌است. برای مثال کاراکتر "فرار" (ESC، کد ۲۷) در ابتدا این امکان را داشت که به جای استفاده از معنای آنها، به ارسال شخصیتهای کنترل دیگر به عنوان لفظ بپردازید. این همان معنای "فرار" است که در رمزگذاری‌های URL، رشته‌های زبان C و سایر سیستمهایی که در آن کاراکترهای خاصی معنای محفوظ دارند وجود دارد. با گذشت زمان این معنی با هم همکار بوده و سرانجام تغییر یافته‌است. در استفاده مدرن، یک ESC که به ترمینال فرستاده می‌شود، معمولاً نشانگر شروع یک دنباله فرمان است که معمولاً به شکل اصطلاح " کد فرار ANSI " (یا به عبارت دقیق تر " معرفی کننده توالی کنترل کننده ") از ECMA-48 (1972) و جانشینان آن، با ESC آغاز شد و پس از آن شخصیتی " [ " (براکت چپ) ارائه شد. ESC ارسال شده از ترمینال اغلب به عنوان شخصیت خارج از باند استفاده می‌شود که برای خاتمه یک عمل استفاده می‌شود ، همان‌طور که در ویرایشگرهای متن TECO و vi. در رابط کاربری گرافیکی کاربر (GUI) و سیستم‌های بادگیر، ESC به‌طور کلی باعث می‌شود یک برنامه کاربردی عملکرد فعلی خود را متوقف کند یا به‌طور کلی خارج شود (خاتمه یابد).
ابهام ذاتی بسیاری از شخصیتهای کنترلی، همراه با کاربرد تاریخی آنها، هنگام انتقال پرونده‌های «متن ساده» بین سیستم‌ها، مشکلاتی را ایجاد می‌کند. بهترین نمونه این مشکل نوخط در سیستم عامل‌های مختلف است. دستگاه‌های Teletype مستلزم خاتمه یک خط با هر دو «بازگشت حمل» (که هدست چاپ را به ابتدای خط می‌دهد) و «خط تغذیه» (که کاغذ را به یک خط و بدون حرکت دادن چاپخانه پیش می‌برد) خاتمه دادند. نام «بازگشت کالسکه» از این واقعیت ناشی می‌شود که روی ماشین تحریر دستی کالسکه نگهدارنده کاغذ حرکت می‌کرد در حالی که موقعیتی که نوارها روی نوار اصابت کرده بودند ثابت مانده‌است. برای قرار دادن حاشیه سمت چپ کاغذ برای خط بعدی، باید کل کالسکه را به سمت راست هل داد.