ASCII - ASCII


Z Wikipedii, wolnej encyklopedii

ASCII
ASCII-infobox.svg
ASCII (1967 lub później)
MIME / IANA us-ascii
Alias ​​(ES) ASCII
Języki) język angielski
Klasyfikacja ISO serii 646
rozszerzenia
Poprzedzony ITA 2 , FIELDATA
zastąpiony przez ISO 8859 , Unicode
Inne związane kodowanie (a) PETSCII

ASCII ( / ć s k í /  ( słuchać ) O tym dźwiękiem ASS -kee ), w skrócie od amerykańskiego Norma Wymiany Informacji , jest kodowanie znaków standardem komunikacji elektronicznej. Kody ASCII reprezentować tekst komputerów, sprzętu telekomunikacyjnego i innych urządzeń. Większość nowoczesnych systemów kodowania znaków są oparte na kodzie ASCII, choć obsługują wiele dodatkowych znaków.

ASCII jest tradycyjna nazwa dla systemu kodowania; Internet Assigned Numbers Authority (IANA) preferuje zaktualizowana nazwa US-ASCII , który wyjaśnia, że system ten został opracowany w Stanach Zjednoczonych i na podstawie typograficznych symboli głównie używana tam.

ASCII jest jednym z IEEE etapów .

Wykres ASCII z wcześniejszej niż 1972 instrukcji drukarki (b1 jest najmniej znaczący bit).

Przegląd

ASCII został opracowany z kodu telegraficznego . Jego pierwsze komercyjne wykorzystanie było jak siedmioletnim nieco Teleprinter kodu promowana przez służby danych Bell. Prace nad standardem ASCII rozpoczęła się 6 października 1960 roku, przy pierwszym spotkaniu Amerykańskiego Stowarzyszenia Standards „s (ASA) (obecnie American National Standards Institute lub ANSI) X3.2 podkomisji. Pierwsza edycja standard został opublikowany w 1963 roku przeszedł gruntowny przegląd w trakcie 1967 roku, i przeżywał swój najnowszy aktualizacji w roku 1986. W porównaniu do wcześniejszych kodów telegraficznych, proponowana kod ASCII Bell i były zarówno zamówił dla wygodniejszego sortowania (tj alphabetization ) list, a dodatkowe funkcje dla urządzeń innych niż dalekopisów.

Pierwotnie na podstawie alfabetu angielskiego , ASCII 128 koduje określone znaki na siedem-bitowych liczb całkowitych, jak pokazano na wykresie ASCII powyżej. Dziewięćdziesiąt pięć zakodowanych znaków można wydrukować: są to cyfry 0 do 9 , małe litery a do Z , wielkie litery A do Z , a znaki przestankowe . Ponadto, przy specyfikacji ASCII 33 zawiera nie-drukowania kody kontrolne , które pochodzą z dalekopisów ; większość z nich są już nieaktualne, chociaż niektóre są nadal powszechnie stosowane, takie jak powrotu karetki , linię zasilającą i kartę kodów.

Na przykład, małe , że będzie reprezentował w kodowaniu ASCII o binarnym 1101001 = szesnastkowym 69 ( I dziewiąty litery) = dziesiętny 105.

Historia

ASCII (1963). Wyniki kontroli równoważnych kontroli są pokazane gdzie one istnieją, lub szare kropki inaczej.

American Standard Code for Information Interchange (ASCII) został opracowany pod auspicjami komitetu Standards American Association (ASA), zwany komitetem X3, jego X3.2 (później X3L2) podkomisji, a później przez X3 tej podkomisji. 2,4 grupa robocza (obecnie INCITS ). ASA stał się Stany Zjednoczone Ameryki Standards Institute (USASI) i ostatecznie z American National Standards Institute (ANSI).

Z drugiej znaki specjalne i kody sterujące wypełnione, ASCII został opublikowany jako ASA X3.4-1963, pozostawiając 28 pozycje kodu bez jakiegokolwiek przypisanego znaczenia, zastrzeżone dla przyszłej normalizacji i jeden obsadzony kod sterujący. Było trochę dyskusji w czasie, czy nie powinno być więcej znaków sterujących zamiast małymi literami alfabetu. Niezdecydowanie nie trwała długo: w maju 1963 roku grupa robocza CCITT na Nowym Telegraph Alfabet proponuje się przypisać małe litery na kije 6 i 7, a Międzynarodowa Organizacja Normalizacyjna TC 97 SC 2 głosowali w październiku o uwzględnienie zmiany w projekcie standardu , Grupa zadanie X3.2.4 przegłosował zgodę na zmiany w jego ASCII maja 1963 spotkanie. Lokalizowanie małe litery pałeczek 6 i 7 spowodował znaków różnią bitów od górnej obudowy poprzez jeden bit, który uproszczonego przypadku niewrażliwe dopasowanie postaci i budowy klawiatury i drukarki.

Komisja X3 dokonane inne zmiany, w tym innych nowych znaków (z klamrą i pionowy pasek znaków), zmiana nazwy niektórych znaków sterujących (SOM stał początek nagłówka (SOH)) i przeniesienie lub usunięcie innych (RU został usunięty). ASCII został następnie zaktualizowany USAS X3.4-1967, potem USAS X3.4-1968 ANSI X3.4-1977, i wreszcie, ANSI X3.4-1986.

Nowelizacje standardu ASCII:

  • ASA X3.4-1963
  • ASA X3.4-1965 (zatwierdzone, ale nie opublikowano jednak wykorzystywane przez IBM 2260 i 2265 Wyświetl stacjach i IBM 2848 sterowania wyświetlaczem)
  • USAS X3.4-1967
  • USAS X3.4-1968
  • ANSI X3.4-1977
  • ANSI X3.4-1986
  • ANSI X3.4-1986 (R1992)
  • ANSI X3.4-1986 (R1997)
  • ANSI INCITS 4-1986 (R2002)
  • ANSI INCITS 4-1986 (R2007)
  • ANSI INCITS 4-1986 (R2012)

W standardzie X3.15, komisja X3 skierowana również jak ASCII powinny być przesyłane ( najmniej znaczący bit pierwszy) i jak powinny być rejestrowane na taśmie perforowanej. Zaproponowali oni 9-track standard taśmie magnetycznej i próbował poradzić sobie z kilkoma karta dziurkowana formatach.

względy konstrukcyjne

szerokość nieco

X3.2 podkomisja zaprojektowany ASCII na podstawie wcześniejszych teledrukarek systemów kodowania. Podobnie jak inne kodowania znaków ASCII określa związek między wzorów bitowych cyfrowych i charakter symboli (tj grafemami i znaków sterujących ). Pozwala to na cyfrowe urządzenia do komunikowania się ze sobą i przetwarzać, przechowywać i przekazywać informacje o postaciach takich jak zorientowane języka pisanego. Przed ASCII został opracowany, że zawarte w użyciu kodowania 26 alfabetycznych znaków, 10 znaków numerycznych , a od 11 do 25 specjalnych symboli graficznych. Aby uwzględnić wszystkie te i znaki kontrolne zgodne z Comité Consultatif Międzynarodowy TELEPHONIQUE et Télégraphique (CCITT) Międzynarodowy Alfabet Telegraph nr 2 (ITA2) standard 1924, FIELDATA (1956), i na początku EBCDIC (1963), więcej niż 64 kody były wymagane dla ASCII.

ITA2 były z kolei opiera się na 5-bitowego kodu telegraficznego Émile Baudot wynalazł w 1870 roku i opatentowany w 1874 roku.

Komitet dyskutowane możliwość stosowania przesunięcia funkcji (takich jak w ITA2 ), co pozwoliłoby na więcej niż 64 kody być reprezentowana przez kod sześciu bitów . W przesunięty kodu, niektóre kody znaków określić wyboru między opcjami poniższych kodów znakowych. Umożliwia on kodowanie kompaktowy, ale jest mniej wiarygodna dla transmisji danych , jak błąd w przekazywaniu kodu shift zwykle czyni długą część transmisji nieczytelne. Komitet postanowił przed przesuwaniem standardy, a więc ASCII wymagane co najmniej siedem-bitowy kod.

Komitet uznał kod ośmiobitowe, od ośmiu bitów ( oktety ) pozwoliłyby dwa wzorce cztery-bitowe skutecznie zakodować dwie cyfry z Kod BCD . Jednak wymagałoby to wszystko transmisję danych do wysłania, gdy siedem osiem bitów mogłoby wystarczyć. Komisja przegłosowała użyć kodu siedem-bitową, aby zminimalizować koszty związane z transmisją danych. Ponieważ taśma perforowana w chwili mógł nagrać osiem bitów w jednej pozycji, ale również pozwoliło na bit parzystości dla kontroli błędów w razie potrzeby. Osiem-bitowych maszyn (z oktetów jak natywnego typu danych), które nie korzystają sprawdzanie parzystości zwykle ósmy bit ustawiony na 0. W niektórych drukarkach, wysoki bit został użyty w celu umożliwienia Kursywa drukowanie.

Wewnętrzna organizacja

Sam kod został wzorzyste tak, że większość kodów sterujących byli razem i wszystkie kody graficzne byli razem, dla ułatwienia identyfikacji. Pierwsze dwa tak zwane pałeczki ASCII (32 pozycji) były zarezerwowane dla znaków kontrolnych. Charakter „przestrzeń” musiał przyjść przed grafiki, aby sortowaniu łatwiej, więc stało się stanowisko 20 hex ; Z tego samego powodu, wiele specjalne znaki powszechnie używane jako separatory zostały umieszczone przed cyfr. Komitet zdecydował, że ważne jest, aby wspierać wielkich liter 64-znakowych i wybrał do wzorca ASCII więc może być łatwo zredukowana do zestawu użytecznego 64 znaków kodów graficznych, jak to miało miejsce w SIXBIT DEC kodu (1963). Małe litery nie były więc przeplatane z wielkich liter. Aby zachować opcje dostępne dla małych liter oraz innych elementów graficznych, a specjalne kody numeryczne zostały umieszczone przed literami, a litera został umieszczony w pozycji 41 hex , aby dopasować projekt odpowiedniego standardu brytyjskiego. Cyfry 0-9 są poprzedzone 011, ale pozostałe 4 bity odpowiadają ich wartości w systemie binarnym, dzięki czemu konwersja z Kod BCD proste.

Wiele znaków alfanumerycznych nie zostały ustawione, aby odpowiadały ich zmienił pozycję na maszynach do pisania; subtelność ważnym jest to, że były one oparte na mechanicznych maszyn do pisania, a nie elektrycznych maszyn do pisania. Elektro mechaniczne następnie standardowi określonemu przez Remington nr 2 (1878), pierwszej maszynie z przycisku przełączającego i przesuniętych wartości 23456789-"#$%_&'() - na początku maszyny do pisania pominięte 0 i 1 , przy użyciu O (literę o, ) i L (małe litery L ) zamiast, ale 1!i 0)pary stały się standardem po 0 i 1 stały się powszechne. Tak więc, w ASCII !"#$%zostały umieszczone w drugim drążek, pozycji 1-5, co odpowiada cyfr 1-5 w sąsiednim kija. Nawiasy nie może odpowiadać 9 i 0 , jednakże, ponieważ miejsce odpowiadające 0 autorstwa znaku spacji. Zostało to uwzględnione poprzez usuwanie _(podkreślenie) z 6 i przesunięcie pozostałych znaków, który odpowiada wielu europejskich do pisania, który umieszczony nawiasy z 8 i 9 . Ta rozbieżność od maszyn do pisania doprowadziły do bitowych sparowane klawiatur , zwłaszcza Teletype model 33 , który stosowany układ lewy przesunięty odpowiada ASCII, a nie tradycyjnych maszyn do pisania mechaniczne. Elektro elektryczne, zwłaszcza IBM Selectric (1961), zastosowano nieco inny układ, który stał się standardem w komputerach - w następstwie IBM PC (1981), a zwłaszcza model M (1984) - a tym samym przesunięcie wartości dla symboli na nowoczesnych klawiaturach nie odpowiadają zbliżony do tabeli ASCII jak wcześniejsze klawiszowe zrobił. /?Para pochodzi również z nr 2, a ,< .>pary były używane na niektórych klawiaturach (inne, w tym nr 2, nie przesuwają ,(przecinek) lub .(kropka), więc może być używany bez unshifting wielkimi literami). Jednakże, ASCII rozdzielać ;:parę (pochodzącym z nr 2) i przestawiać symboli matematycznych (różnych konwencji, powszechnie -* =+) do :* ;+ -=.

Niektóre typowe postacie nie zostały uwzględnione, w szczególności ½¼¢, gdy ^`~zostały włączone jako znaków diakrytycznych do użytku międzynarodowego, i <>do zastosowania matematycznej wraz z prostych znaków liniowych \|(oprócz wspólnego /). @ Symbol nie był używany w Europie kontynentalnej i komisja oczekuje, że będzie zastąpiony przez akcentowanym À we francuskiej odmianie, więc @ został umieszczony w pozycji 40 hex , tuż przed literą A.

Kody sterujące czuł niezbędny do transmisji danych były początkiem wiadomości (SOM), koniec adresu (EOA), koniec komunikatu (MOW), koniec transmisji (EOT), „Kim jesteś?” (WRU), "jesteś?" (RU), kontrola zastrzeżone urządzenie (dc0), synchroniczny bezczynny (SYNC) i potwierdzić (ACK). Zostały one umieszczone, aby zmaksymalizować odległość Hamminga pomiędzy ich wzorów bitowych.

kolejność znaków

Kolejność ASCII kod jest również nazywany ASCIIbetical zamówienie. Sortowanie danych jest często wykonywane w tej kolejności, niż „standardowe” w porządku alfabetycznym ( zestawiania sekwencji ). Głównymi odchylenia w kolejności ASCII są:

  • Wszystko wielkie przyjść przed małymi literami; Na przykład, „Z” wyprzedza „A”
  • Cyfr i wielu znaków interpunkcyjnych przyjść przed literami

Pośrednia porządek zamienia duże litery na małe litery przed porównując wartości ASCII.

grupy znaków

znaki sterujące

ASCII rezerwuje pierwsze 32 kodów (numery 0-31 przecinku) dla znaków kontrolnych : Kody pierwotnie przeznaczony do reprezentowania informacji nie do druku, ale raczej do urządzeń (takich jak kontrola drukarek ), które wykorzystują ASCII, lub dostarczyć meta-informacje o danych strumieni takie jak zapisanej na taśmie magnetycznej.

Na przykład, postać 10 reprezentuje funkcję „pasza linia” (co powoduje drukarkę, aby przejść jego papieru), a postać 8 reprezentuje „Backspace”. RFC  2822 odnosi się do sterowania postacie, które nie zawierają powrotu karetki kanał linii lub białej powierzchni w postaci nie-białych postaci kontrolnych. Z wyjątkiem znaków sterujących, które przepisują formatowanie linii zorientowanych elementarną, ASCII nie definiuje żadnego mechanizmu do opisania struktury lub wyglądu tekstu w dokumencie. Inne programy, takie jak języki znaczników , strony adresowej i układu dokumentu i formatowania.

Oryginalny standardem ASCII wykorzystywane jedynie krótkich fraz opisowych dla każdego znaku kontrolnego. Dwuznaczność ta spowodowana była niekiedy celowe, na przykład, gdy postać będzie używany nieco inaczej na terminalu linku niż w strumieniu danych , a czasem przypadkowe, na przykład ze znaczeniem „delete”.

Prawdopodobnie najbardziej wpływowy pojedyncze urządzenie z interpretacją tych postaci była Dalekopis Wzór 33 ASR, który to terminal drukowania z dostępnym taśmy papieru możliwością odczytu / stempla. Papierowa taśma była bardzo popularnym medium do długoterminowego przechowywania programu do 1980 roku, mniej kosztownych i pod pewnymi względami mniej kruche niż taśmy magnetycznej. W szczególności, model 33 Dalekopis przyporządkowania kodów maszynowych do 17 (kontrola-Q DC1, znany również jako XON), 19 (Control-S, DC3, znany również jako XOFF) i 127 ( Usuwanie ) stał de facto standardy. Model 33 był również znany z opisu biorąc Control-G (kod 7, Bel, czyli słyszalny ostrzec operatora) dosłownie, ponieważ urządzenie zawierały rzeczywiste dzwon który zadzwonił, gdy otrzymała BEL charakter. Ponieważ keytop dla przycisku O wykazały również symbol strzałki w lewo (z ASCII-1963, który miał tę postać zamiast podkreślenia ), A niewłaściwe zastosowanie kodu 15 (Control-O, przesunięcie) interpretowane jako „usunąć poprzedni znak” został także przyjęty przez wielu systemów wczesnego timesharingowych ale ostatecznie stał zaniedbany.

Gdy Dalekopis 33 ASR wyposażony w automatyczny czytnik taśmy papieru otrzymanych Control-S (XOFF, skrót nadawania wyłączony), to spowodowane czytnika taśmy zatrzymania; odbieranie Control-Q (XON „nadawać”) spowodowanego czytnik taśma wznowione. Technika ta stała się przyjęta przez kilku systemów operacyjnych na początku komputer jako sygnał ostrzegawczy „uzgadniania” nadawcę do zaprzestania transmisji z powodu zbliżającego się przepełnienia; to utrzymuje się do dnia dzisiejszego w wielu systemach jako technika sterowania ręcznego wyjścia. W niektórych systemach sterowania S zachowuje swoje znaczenie, a Q sterowania otrzymuje drugą regulację-S wznowienie produkcji. W 33 ASR również może być skonfigurowany tak, aby stosować sterowanie-R (DC2) oraz sterowania T (DC4) do włączania i wyłączania stempel taśmy; na niektórych urządzeniach wyposażonych w tę funkcję, odpowiedni napis znak kontrolny na keycap powyższego listu był i TAŚMY TAŚMY odpowiednio.

Dalekopis nie mógł przesunąć głowę do tyłu, więc nie umieścić przycisk na klawiaturze, aby wysłać BS (Backspace). Zamiast tego był kluczowym oznaczone „rubout”, który wysłał kod 127 (DEL). Celem tego klucza było usunąć błędy w taśmie papierowej ręcznie wpisane: operator musiał nacisnąć przycisk na stemplu taśmy jego kopię zapasową, a następnie wpisz rubout, który dziurkowany wszystkie otwory i zastąpić błąd z charakterem, które miało być ignorowane. Dalekopisów były powszechnie używane do tańszych komputerów z Digital Equipment Corporation , więc systemy te musiały skorzystać z dostępnego klucza, a więc kod DEL, aby usunąć poprzedni znak. Z tego powodu, terminale wideo DEC (domyślnie) wysłany kod DEL na przycisk oznaczony „Backspace”, podczas gdy klawisz oznaczony „Usuń” wysłał sekwencję ucieczki, podczas gdy wiele innych terminali wysłał BS dla klawisza Backspace. Kierowca terminalu Unix może wykorzystać tylko jeden kod do tworzenia kopii zapasowych, to może być ustawiony na BS lub DEL, ale nie oba, w wyniku bardzo długiego okresu irytacji, gdzie trzeba było poprawić to w zależności od tego terminala uzywasz (nowoczesne pociski za pomocą readline zrozumieć oba kody). Założenie, że żaden klawisz nie wysłał BS spowodowane Control + H, aby być wykorzystywane do innych celów, takich jak polecenie „Pomoc” w Emacs.

Wiele więcej kodów sterujących nadano znaczeń zupełnie inny od swoich oryginalnych. Znak „escape” (ESC, kod 27), na przykład, był pierwotnie przeznaczony, aby umożliwić wysyłanie inne znaki sterujące jako literały zamiast wywoływać ich znaczenie. Jest to ten sam sens „Escape” napotkanych kodowania URL, język C strun i innych systemów, w których niektóre znaki mają zarezerwowaną znaczenie. Z biegiem czasu to znaczenie zostało dokooptowanych i ostatecznie została zmieniona. W nowoczesnym zastosowaniu, ESC, wysłany do terminalu zwykle wskazuje na początek sekwencji poleceń zwykle w postaci tak zwanego „ kodu ucieczki ANSI ” (lub, bardziej odpowiednio, w „ sekwencyjnego sterowania introduktor ”) od ECMA-48 ( 1972) i jego następcy, poczynając ESC a następnie „[” () charakter lewy wspornik. RSG wysyłane z terminala jest najczęściej używany jako out-of-band znak używany do zakończenia operacji, jak w TECO i vi edytorach tekstowych . W graficznym interfejsem użytkownika (GUI) i okienkowanie systemów ESC ogólnie powoduje przerwanie jego zastosowanie do bieżącej operacji lub wyjść (zakończenia) całkowicie.

Nieodłączne niejednoznaczność wielu znaków sterujących, w połączeniu z ich historycznego użytkowania, stwarzała problemy podczas przesyłania plików „zwykły tekst” między systemami. Najlepszym tego przykładem jest nowalinia problemem na różnych systemach operacyjnych . Maszyny dalekopis wymagane, że linia tekstu zostać rozwiązana zarówno „Carriage Return” (który przesuwa głowicę do początku linii) i „Line Feed” (który przesuwa papier jeden wiersz bez przemieszczania głowicy drukującej). Nazwa „Carriage Return” wynika z faktu, że na ręcznej maszynie karetka gospodarstwa papier przesuwany, gdy pozycja gdzie Typebars uderzył wstążkę pozostał nieruchomy. Cały wózek musiała zostać przesunięta (zwrócone) w prawo w celu ustawienia lewy margines papieru do następnego wiersza.

Grudnia systemy operacyjne ( OS / 8 , RT-11 , RSX-11 , RSTS , TOPS-10 , itd.), Stosowane zarówno znaków, aby zaznaczyć koniec linii tak, że urządzenie konsoli (pierwotnie maszyny dalekopis ) będzie działać. W tym czasie tak zwanej „szkło tty” (później zwane CRT lub terminali) przyszedł, konwencja została tak dobrze ustalone, że wsteczna kompatybilność konieczność kontynuowania konwencję. Kiedy Gary Kildall stworzony CP / M był inspirowany przez niektórych konwencji interfejs wiersza poleceń użytych w DEC „s RT-11 . Do czasu wprowadzenia PC DOS w 1981 roku, IBM nie miał ręki w tym 1970, ponieważ ich systemy używane EBCDIC zamiast ASCII operacyjny i były zorientowane w kierunku wejścia dziurkowania kart i wyjście drukarki linia, na której koncepcja powrotu karetki był bez znaczenia. IBM PC DOS (również sprzedawany jako MS-DOS firmy Microsoft) odziedziczył konwencję mocy jest luźno oparty na CP / M , a system Windows odziedziczył go od MS-DOS.

Niestety, co wymaga dwóch znaków aby zaznaczyć koniec linii wprowadza niepotrzebną złożoność i wątpliwości co do sposobu interpretacji każdego znaku, gdy napotkał sam. Aby uprościć sprawach zwykłego tekstu strumienie danych, w tym plików na Multics wykorzystywanych do nowego wiersza (LF) sam jako terminator wiersza. Unix i uniksowe systemy i Amigi systemy, przyjęła tę konwencję z Multics. Oryginalny Macintosh OS , Apple DOS i ProDOS , z drugiej strony, wykorzystywane powrotu karetki (CR) sam jako terminator wiersza; Jednakże, ponieważ firmy Apple zastąpił tych systemów operacyjnych z rodziny Unix opartej na MacOS system operacyjny, to teraz wykorzystać do nowego wiersza (LF), jak również. Radio Shack TRS-80 stosuje się również do samodzielnego CR zakończenia linii.

Komputery podłączone do ARPANET włączone komputery pracujące pod systemami operacyjnymi, takimi jak TOPS-10 i Tenex używając końca linii CR-LF, maszyny z systemami operacyjnymi takimi jak Multics użyciu LF zakończeń linii i maszyn z systemami operacyjnymi takimi jak OS / 360 , które reprezentowane linie jak licznik znaków następnie bohaterów linii i że używany EBCDIC zamiast ASCII. Telnet protokół zdefiniowany ASCII „ Sieć wirtualna Terminal ” (NVT), tak, że połączenia pomiędzy hostami z różnymi konwencjami kończący linię zestawów znaków i może być obsługiwany przez transmitowanie standardowy format tekstu w sieci. Telnet używany ASCII wraz z CR-LF zakończeń linii i oprogramowania za pomocą innych konwencji byłoby tłumaczyć między lokalnymi konwencjami i NVT. File Transfer Protocol przyjęła protokół Telnet, w tym korzystania z sieci terminal wirtualny, do stosowania przy przekazywaniu poleceń i przesyłania danych w domyślnym trybie ASCII. To zwiększa złożoność implementacji tych protokołów oraz innych protokołów sieciowych, takich jak te wykorzystywane do e-mail i sieci World Wide Web, na systemach nie korzystających z CR-LF kończący linię Konwencji z Nvt za.

Monitor PDP-6 i jej PDP-10 następca TOPy-10 stosowane Control-Z (SUB), jako wskazanie do wejścia EOF z terminalu. Niektóre systemy operacyjne, takie jak CP / M śledzone długość pliku tylko w jednostkach bloków dyskowych i używane Control-Z, aby zaznaczyć koniec rzeczywistego tekstu w pliku. Z tych powodów EOF, lub EOF , użyto potocznie i konwencjonalnie jako skrót trzyliterowy dla Control-Z, a nie substytutem. Końcowy z tekście kod ( EXT ), znany również jako Control-C , były nieodpowiednie do wielu powodów, a za pomocą oo jako kod sterujący końca pliku jest analogiczny do tego zakończenia alfabetu i stanowi bardzo dogodny pomoc pamięciowy . Historycznie powszechne i nadal powszechne konwencja używa kodu konwencję ETX przerwać i zatrzymać program, za pomocą strumienia danych wejściowych, zazwyczaj z klawiatury.

C biblioteki i Unix konwencji, znak null służy do wypowiedzenia tekstowych strun ; takie ciągi NUL mogą być znane w skrócie jako ASCIZ lub ASCIIZ tu, gdzie Z oznacza „zero”.

Dwójkowy październik grudzień Klątwa Skrót Nazwa (1967)
1963 1965 1967
000 0000 000 0 00 ZERO NUL ^@ \0 Zero
000 0001 001 1 01 SOM SOH ^A Początek działu
000 0010 002 2 02 EOA STX ^B Początek tekstu
000 0011 003 3 03 MOW ETX ^C Koniec Tekst
000 0100 004 4 04 EOT ^D Koniec transmisji
000 0101 005 5 05 WRU ENQ ^E Zapytanie ofertowe
000 0110 006 6 06 RU ACK ^F Potwierdzenie
000 0111 007 7 07 DZWON BEL ^G \a dzwon
000 1000 010 8 08 FE0 BS ^H \b Backspace
000 1001 011 9 09 HT / SK HT ^I \t Tab pozioma
000 1010 012 10 0A LF ^J \n Line Feed
000 1011 013 11 0B VTAB VT ^K \v pionowy wypust
000 1100 014 12 0C FF ^L \f Wysuw
000 1101 015 13 0D CR ^M \r Powrót karetki
000 1110 016 14 0E WIĘC ^N przesunięcie Out
000 1111 017 15 0F SI ^O przesunięcie
001 0000 020 16 10 dc0 DLE ^P Data Link Ucieczka
001 0001 021 17 11 DC1 ^Q Sterowanie urządzeniem 1 (często XON )
001 0010 022 18 12 DC2 ^R Sterowanie urządzeniem 2
001 0011 023 19 13 DC3 ^S Sterowanie urządzeniem 3 (często XOFF )
001 0100 024 20 14 DC4 ^T Sterowanie urządzeniem 4
001 0101 025 21 15 BŁĄDZIĆ NAK ^U negatywnego potwierdzenia
001 0110 026 22 16 SYNC SYN ^V synchroniczny Idle
001 0111 027 23 17 LEM ETB ^W Koniec transmisji blokowej
001 1000 030 24 18 S0 MOGĄ ^X Anuluj
001 1001 031 25 19 S1 EM ^Y Koniec Średni
001 1010 032 26 1A S2 SS POD ^Z Zastąpić
001 1011 033 27 1B S3 WYJŚCIE ^[ \e Ucieczka
001 1100 034 28 1C S4 FS ^\ File Separator
001 1101 035 29 1D S5 GS ^] Grupa Separator
001 1110 036 30 1E S6 RS ^^ Record Separator
001 1111 037 31 1F S7 NAS ^_ jednostka Separator
111 1111 177 127 7F DEL ^? Kasować

Inne reprezentacje mogą być wykorzystywane przez specjalistyczny sprzęt, na przykład ISO 2047 graficznej lub szesnastkowych liczb.

znaków do druku

Kody 20 hex 7e hex , znany jako druku znaków, reprezentują litery, cyfry, znaki interpunkcyjne , a kilka Różnorodne symbole. Istnieje 95 znaków druku w sumie.

Kod 20 hex The charakter „przestrzeń” , oznacza przestrzeń między słowami, jak produkowane przez spacji na klawiaturze. Ponieważ spacja jest uważany niewidzialna graficzny (raczej niż znak kontrolny) jest wymieniony w poniższej tabeli zamiast w poprzednim rozdziale.

Kod 7F hex odpowiada zakaz druku „delete” (usuń) znaku kontrolnego, a zatem pominąć tego wykresu; jest pokryte wykresie poprzedniej części jest. Wcześniejsze wersje ASCII wykorzystywane strzałkę w górę zamiast karetki (5E hex ) i lewej strzałki zamiast do podkreślenia (5F hex ).

Dwójkowy październik grudzień Klątwa Glyph
1963 1965 1967
010 0000 040 32 20  przestrzeń
010 0001 041 33 21 !
010 0010 042 34 22 "
010 0011 043 35 23 #
010 0100 044 36 24 $
010 0101 045 37 25 %
010 0110 046 38 26 &
010 0111 047 39 27 '
010 1000 050 40 28 (
010 1001 051 41 29 )
010 1010 052 42 2A *
010 1011 053 43 2B +
010 1100 054 44 2C ,
010 1101 055 45 2D -
010 1110 056 46 2E ,
010 1111 057 47 2F /
011 0000 060 48 30 0
011 0001 061 49 31 1
011 0010 062 50 32 2
011 0011 063 51 33 3
011 0100 064 52 34 4
011 0101 065 53 35 5
011 0110 066 54 36 6
011 0111 067 55 37 7
011 1000 070 56 38 8
011 1001 071 57 39 9
011 1010 072 58 3A :
011 1011 073 59 3B ;
011 1100 074 60 3C <
011 1101 075 61 3D =
011 1110 076 62 3E >
011 1111 077 63 3F ?
100 0000 100 64 40 @ ` @
100 0001 101 65 41 ZA
100 0010 102 66 42 b
100 0011 103 67 43 do
100 0100 104 68 44 re
100 0101 105 69 45 mi
100 0110 106 70 46 fa
100 0111 107 71 47 sol
100 1000 110 72 48 H
100 1001 111 73 49 ja
100 1010 112 74 4A jot
100 1011 113 75 4B K
100 1100 114 76 4C L
100 1101 115 77 4D M
100 1110 116 78 4E N
100 1111 117 79 4F O
101 0000 120 80 50 P
101 0001 121 81 51 Q
101 0010 122 82 52 R
101 0011 123 83 53 S
101 0100 124 84 54 T
101 0101 125 85 55 U
101 0110 126 86 56 V
101 0111 127 87 57 W
101 1000 130 88 58 X
101 1001 131 89 59 Y
101 1010 132 90 5A Z
101 1011 133 91 5B [
101 1100 134 92 5C \ ~ \
101 1101 135 93 5D ]
101 1110 136 94 5E ^
101 1111 137 95 5F _
110 0000 140 96 60 @ `
110 0001 141 97 61 za
110 0010 142 98 62 b
110 0011 143 99 63 do
110 0100 144 100 64 re
110 0101 145 101 65 mi
110 0110 146 102 66 fa
110 0111 147 103 67 sol
110 1000 150 104 68 h
110 1001 151 105 69 ja
110 1010 152 106 6A jot
110 1011 153 107 6B k
110 1100 154 108 6C L
110 1101 155 109 6D m
110 1110 156 110 6E n
110 1111 157 111 6F O
111 0000 160 112 70 p
111 0001 161 113 71 q
111 0010 162 114 72 R
111 0011 163 115 73 s
111 0100 164 116 74 T
111 0101 165 117 75 u
111 0110 166 118 76 v
111 0111 167 119 77 w
111 1000 170 120 78 x
111 1001 171 121 79 r
111 1010 172 122 7A oo
111 1011 173 123 7B {
111 1100 174 124 7C ACK ¬ |
111 1101 175 125 7D }
111 1110 176 126 7E WYJŚCIE | ~

Zestaw znaków

ASCII (1977/1986)
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _ZA _B _DO _RE _MI _FA
0_
0
NUL
0000
SOH
0001
STX
0002
ETX
0003
EOT
0004
ENQ
0005
ACK
0006
BEL
0007
BS
0008
HT
0009
LF
000A
VT
000B
FF
000C
CR
000D
SO
000E
SI
000F
1_
16
DLE
0010
DC1
0011
DC2
0012
DC3
0013
DC4
0014
NAK
0015
SYN
0016
ETB
0017
CAN
0018
EM
0019
SUB
001A
ESC
001B
FS
001C
GS
001D
RS
001E
US
001F
2_
32
SP
0020
!
0021
"
0022
#
0023
$
0024
%
0025
i
0.026
'
0027
(
0028
)
0029
*
002A
+
002B
,
002C
-
002D
,
002E
/
002F
3_
48
0
0.030
1
0031
2
0032
3
0033
4
0034
5
0035
6
0036
7
0.037
8
0038
9
0.039
:
003A
;
003B
<
003C
=
003D
>
003E
?
003F
4_
64
@
0040

0041
B
0042
C
0043
D
0044
E
0045
F
0046
G
0047
H
0048
I
0049
J
004A
K
004B
L
004C
M
004D
N
004E
O
004F
5_
80
P
0050
P
0051
R
0052
S
0053
T
0054
U
0055
V
0056
W
0057
X
0058
Y
0.059
Z
005A
[
005B
\
005C
]
005D
^
005E
_
005F
6_
96
`
0060

0061
b
0062
c
0.063
d
0.064
e
0065
f
0066
g
0067
h
0.068
I
0069
j
006A
k
006B
L
006C
m
006D
n
006E
O
006F
7_
112
p
0070
q
0.071
R
0072
s
0073
t
0.074
U
0075
v
0076
w
0077
x
0078
Y
0.079
oo
007A
{
007B
|
007C
}
007D
~
007E
DEL
007F

  List    Ilość    interpunkcja    Symbol  Inne  undefined  Zmienione od wersji 1963      

Posługiwać się

ASCII został użyty po raz pierwszy na rynku w ciągu 1963 roku jako siedem-bitowego kodu Teleprinter dla Ameryki Telephone & Telegraph „s TWX (dalekopisowych Exchange) sieci. TWX pierwotnie użył wcześniej pięć-bitowego ITA2 , który był również wykorzystywany przez konkurencyjne Telex systemu dalekopis. Bob Bemer wprowadzane elementy, takie jak sekwencja ucieczki . Jego brytyjski kolega Hugh Ross McGregor pomógł spopularyzować tę pracę - zgodnie z Bemer, „tak, że kod, który miał się stać ASCII został po raz pierwszy o nazwie Code Bemer-Ross w Europie”. Z powodu swojej obszernej pracy na ASCII, Bemer został nazwany „ojcem ASCII”.

W dniu 11 marca 1968 roku, prezydent USA Lyndon B. Johnson mandat, że wszystkie komputery zakupione przez United States Federal rządowego wsparcia ASCII, stwierdzając:

Mam również zatwierdziła zalecenia Sekretarza Handlu dotyczących standardów nagrywania Norma Wymiany Informacji na taśmach magnetycznych i taśm papierowych, gdy są one wykorzystywane w operacjach komputerowych. Wszystkie komputery i konfiguracje urządzeń związanych wniesione do rządu federalnego inwentaryzacji w dniu 1 lipca 1969 roku i później, muszą mieć możliwość korzystania z Norma Wymiany Informacji i formaty przepisane przez magnetycznych standardów taśmy i taśmy papierowej, gdy używane są te nośniki.

ASCII była najczęstszą kodowanie znaków na World Wide Web do grudnia 2007, kiedy UTF-8 kodowania przewyższał go; UTF-8 jest wstecznie kompatybilny z ASCII.

Warianty i pochodne

Wraz z rozwojem technologii komputerowych rozprzestrzenił się na cały świat, różne organy normalizacyjne i korporacje opracowali wiele odmian ASCII w celu ułatwienia ekspresji nieanglojęzycznych alfabetów języków używanych Roman oparte. Jedna klasa może niektóre z tych odmian jako „ rozszerzeń ASCII ”, chociaż niektóre niewłaściwe że termin reprezentować wszystkie warianty, w tym te, które nie zachowują w ASCII character-mapa w przedziale 7-bitowym. Ponadto rozszerzenia ASCII zostały również nieprawidłowo oznakowanych jako ASCII.

7-bitowe kody

Od początku swojego rozwoju, ASCII miała być tylko jednym z kilku wariantów krajowych międzynarodowego standardu kodu znaków.

Inne normy międzynarodowe organy ratyfikowały kodowania znaków, takich jak ISO 646 (1967), które są identyczne lub prawie identyczne z ASCII, z rozszerzeniami dla znaków spoza angielskiego alfabetu i symboli używanych poza Stanami Zjednoczonymi, takich jak symbol dla Zjednoczonego Królestwa za funta szterlinga (£). Niemal każdy kraj potrzebuje dostosowanej wersji ASCII, ponieważ ASCII odpowiadało potrzebom tylko USA i kilku innych krajach. Na przykład, Kanada miał własną wersję obsługiwaną znaki francuskie.

Wiele innych krajów opracowane warianty ASCII włączenia non-angielskich liter (np é , ñ , SS , Ł ), symbole walut (np £ , ¥ ), itd. Patrz także YUSCII (Jugosławia).

Byłoby dzielić większość znaków wspólnego, ale lokalnie użytecznych przypisać inne znaki do kilku punktów kodowych zarezerwowanych dla „wykorzystania narodowej”. Jednak cztery lata, które upłynęły od publikacji ASCII-1963 i pierwszym przyjęciu MOS międzynarodowej rekomendacji podczas 1967 spowodował wyborów ASCII dla krajowych znaków użycia do wydają się być de facto standardy na świecie, powodując zamieszanie i niezgodności raz innych krajach zaczęła tworzyć własne zadania do tych punktów kodowych.

ISO / IEC 646, jak ASCII, to zestaw znaków 7-bitowych. To nie ma żadnych dodatkowych kodów dostępna, więc te same punkty kodowe zakodowane różne postacie w różnych krajach. Ucieczka kody zostały zdefiniowane, aby wskazać, który wariant krajowy zastosowane do fragmentu tekstu, ale były one rzadko używane, więc było często niemożliwe, aby wiedzieć, co wariant do pracy i, w związku z tym, który znak kodu reprezentowane, i w ogóle, o tekst systemy przetwarzania mogła poradzić sobie tylko z jednym wariantem tak.

Ponieważ wspornik i karczkiem znaków ASCII zostali przydzieleni do „użytku krajowego” punkty kodowe, które zostały użyte do akcentowanych liter w innych wariantach narodowych ISO / IEC 646, niemieckim, francuskim lub szwedzkim itp programista wykorzystaniem ich wariant krajowy ISO / IEC 646, zamiast ASCII, miał napisać, a więc czytać, coś takiego jak

ä aÄiÜ = 'Ön'; ü

zamiast

{ a[i] = '\n'; }

Trójznaków C zostały stworzone, aby rozwiązać ten problem dla ANSI C , chociaż ich późne wprowadzenie i niespójne wdrażanie w kompilatory ogranicza ich stosowanie. Wielu programistów trzymane swoje komputery na US-ASCII, więc zwykły tekst w języku szwedzkim, niemieckim itd. (Na przykład w wiadomości e-mail lub Usenecie ) zawierał „{}” i podobne warianty w środku wyrazów, coś ci programiści dostał przyzwyczajony. Na przykład szwedzki programista mailing inny programista z pytaniem, czy powinny one iść na obiad, można uzyskać „N {jag har sm | rg} sar” jako odpowiedź, która powinna być „NA jag har smörgåsar”, czyli „Nie mam kanapki”.

8-bitowe kody

W końcu, gdy 8-, 16- i 32-bitowe (a później 64-bitowy ), komputery zaczął wymienić 12- , 18- i 36-bitowe komputery jako norma stało się powszechne użycie 8-bitowego bajtu do przechowywania każdego znaków w pamięci, zapewniając możliwość rozszerzonych, 8-bitowych krewnych ASCII. W większości przypadków te opracowane jako prawdziwe rozszerzenia ASCII, pozostawiając oryginalny charakter mapowanie nienaruszone, lecz dodając dodatkowe definicje znaków po pierwszych 128 (tj, 7-bitowych znaków).

Kodowanie to ISCII (Indie) VISCII (Wietnam). Chociaż te kodowania są czasami określane jako ASCII, prawda ASCII określa się ściśle tylko przez normę ANSI.

Większość systemów komputerowych wcześnie domu opracowały własne zestawy 8-bitowych znaków zawierających glify do rysowania i gry, a często wypełnione niektóre lub wszystkie znaki sterujące od 0 do 31 z większą ilością grafiki. Kaypro CP / M komputery używane „górny” 128 znaków dla alfabetu greckiego.

PETSCII kod Commodore International wykorzystywane do ich 8-bitowych systemów jest prawdopodobnie wyjątkowa wśród kodów po 1970 roku jest oparta na kodzie ASCII-1963, zamiast bardziej powszechne ASCII-1967, jak znaleźć na ZX Spectrum komputerze. Atari komputery 8-bitowe i Galaksija komputery wykorzystywane również warianty ASCII.

IBM PC zdefiniowane CP437 , która zastąpiła znaki sterujące z symboli graficznych, takich jak buźki i odwzorowane dodatkowe znaki graficzne do górnych 128 pozycji. Systemy operacyjne takie jak DOS obsługiwane tych stron kodowych, a producenci z IBM PC wspiera ich w sprzęcie. Digital Equipment Corporation opracowała Wielonarodowego zestawu znaków (DEC-MCS) do wykorzystania w popularnej VT220 terminalu jako jeden z pierwszych rozszerzeń przeznaczonych dla języków międzynarodowych bardziej niż na ilustracjach blokowych. Macintosh zdefiniowane Mac OS Roman i Postscript zdefiniowano także zestaw, zarówno tych zawartych zarówno międzynarodowych liter i znaków interpunkcyjnych typograficznych zamiast grafiki, bardziej jak nowoczesnych zestawów znaków.

8859 ISO / IEC standardowy (pochodzący z dec-MCS) ostatecznie ze standardu, że większość systemów kopiowane (co najmniej tak dokładnie, jak to skopiowane ASCII, ale wiele podstawień). Popularnym dalsze rozszerzenie zaprojektowany przez Microsoft, Windows 1252 (często błędnie jako ISO-8859-1 ), dodane typograficzne znaki interpunkcyjne potrzebne do tradycyjnego druku tekstu. ISO-8859-1, Windows-1252, a oryginalny 7-bitowy ASCII były najczęstsze kodowania znaków aż do 2008 roku, kiedy UTF-8 stał się bardziej powszechne.

ISO / IEC 4873 wprowadzono 32 dodatkowych kodów sterujących zdefiniowane w 80-9F szesnastkowym zakresie w ramach rozszerzenia kodowanie ASCII 7-bitowych się system 8-bitową.

Unicode

Unicode oraz ISO / IEC 10646 Uniwersalny zestaw znaków (UCS) mają znacznie szerszy wachlarz bohaterów i ich różne formy kodowania zaczęły wypierać ISO / IEC 8859 i ASCII szybko w wielu środowiskach. Podczas ASCII ograniczone do 128 znaków Unicode i UCS obsługiwać więcej znaków oddzielając koncepcji jednoznacznej identyfikacji (przy użyciu liczby naturalne zwane punkty kodowe ) i kodowanie (do 8, 16 albo 32-bitowe binarne formacie, zwane UTF-8 , UTF-16 i UTF-32 ).

ASCII włączono do Unicode (1991) Postać ustawiony jako pierwsze 128 symboli, tak, że 7-bitowych znaków ASCII mają te same kody liczbowe w obu zestawach. Pozwala to na UTF-8 , aby być kompatybilny wstecz z 7-bitowym ASCII, jak plik UTF-8 zawiera tylko znaki ASCII jest identyczna do pliku ASCII zawierającego tę samą sekwencję znaków. Co ważniejsze, kompatybilność w przód jest zapewniona jako oprogramowanie, które rozpoznaje tylko 7-bitowych znaków ASCII jako szczególny i nie zmienia bajty z najwyższym ustawionym bitem (jak to często zrobić, aby wesprzeć 8-bitowych rozszerzeń ASCII, takich jak ISO-8859-1) zachowa UTF-8 dane niezmienione.

Zobacz też

Uwagi

Referencje

Dalsza lektura

Linki zewnętrzne