ASCII

ASCII

Utskrivbare ASCII-tegn, fra 32 til 128
Idiom Engelsk
Følgende ISO/IEC 8859 og ISO 646

ASCII ( engelsk akronym for American Standard Code for Information Interchange ), vanligvis uttalt [áski] [ 1 ] : 6  eller (sjelden) [ásθi] eller [ási], er en kode med tegn basert på det latinske alfabetet , slik det brukes i moderne Engelsk. Det ble opprettet i 1963 av American Standards Committee (ASA, kjent siden 1969 som American National Standards Institute, eller ANSI ) som en utvikling av kodesettene som ble brukt i telegrafi .. Senere, i 1967 , ble små bokstaver inkludert, og noen kontrollkoder ble omdefinert for å danne koden kjent som US-ASCII.

ASCII-koden bruker 7 biter for å representere tegn, selv om den opprinnelig brukte en ekstra bit (paritetsbit ) som ble brukt til å oppdage feil i overføringen. Ulike 8-biters tegnkoder som utvider ASCII med tegn fra andre språk enn engelsk, slik som ISO/IEC 8859-1 -standarden, kalles ofte feilaktig ASCII . [ 1 ]

ASCII ble først utgitt som standard i 1967 og ble sist oppdatert i 1986. Den definerer for tiden koder for 32 tegn som ikke kan skrives ut, hvorav de fleste er kontrolltegn som har innvirkning på hvordan tekst behandles, pluss ytterligere 95 utskrivbare tegn som følger i nummereringen (begynner med mellomromstegnet).

Nesten alle datasystemer i dag bruker ASCII-kode eller en kompatibel utvidelse for å representere tekst og for å kontrollere enheter som håndterer bokstaver eller symboler på tastaturet.

Oversikt

Datamaskiner forstår bare tall. ASCII-kode er en metode for å oversette bokstaver og symboler til tall som 'a=97' eller '/=47'. [ 2 ]

I likhet med andre tegnrepresentasjonsformatkoder, er ASCII en metode for samsvar mellom strenger av biter og en serie symboler (alfanumeriske og andre), og tillater dermed kommunikasjon mellom digitale enheter så vel som deres behandling og lagring. ASCII-tegnkoden [ 3 ] [ 4 ] – eller en kompatibel utvidelse (se nedenfor) – brukes av nesten alle datamaskiner, spesielt med personlige datamaskiner og arbeidsstasjoner . Det mest passende navnet for denne tegnkoden er "US-ASCII". [ 5 ]

! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ ABCDEFGHIJKLMNOPQRSTU VWXYZ [ \ ] ^ _ ` abcdefghijklmnopqrstu vwxyz { | } ~

ASCII er strengt tatt en syv - bits kode , som betyr at den bruker bitstrenger som kan representeres med syv binære sifre (fra 0 til 127 i desimalbasis) for å representere tegninformasjon. På det tidspunktet ASCII-koden ble introdusert, jobbet mange datamaskiner med grupper på åtte biter ( byte eller oktetter ), som minimumsenhet for informasjon; hvor den åttende biten vanligvis ble brukt som en paritetsbit for feilkontrollfunksjoner på kommunikasjonslinjer eller andre enhetsspesifikke funksjoner. Maskiner som ikke brukte paritetskontroll satte den åttende biten til null i de fleste tilfeller, selv om andre systemer som Prime -datamaskiner som kjører PRIMOS satte den åttende biten av ASCII-koden til én. ASCII-koden definerer et forhold mellom spesifikke tegn og bitsekvenser; bortsett fra å reservere noen få kontrollkoder for tekstbehandleren, og definerer ikke noen mekanisme for å beskrive strukturen eller utseendet til teksten i et dokument; disse sakene er spesifisert av andre språk, for eksempel markup -språk .

Historikk

ASCII-koden ble utviklet innen telegrafi og ble først brukt kommersielt som en fjerntrykkkode drevet av Bell Data Services . Bell hadde planlagt å bruke en seks-bits kode, avledet fra Fieldata , som la til tegnsetting og små bokstaver til den eldre Baudot fjernskrivingskoden , men de ble overtalt til å bli med i underutvalget for American Standards Agency (ASA), som hadde begynt å utvikle ASCII kode. Baudot hjalp til med automatisering av sending og mottak av telegrafiske meldinger, og lånte mange funksjoner fra morsekode ; imidlertid, i motsetning til morsekode, brukte Baudot koder med konstant lengde. Sammenlignet med tidlige telegrafkoder, resulterte koden foreslått av Bell og ASA i en mer praktisk omorganisering for bestillingslister (spesielt siden den ble sortert alfabetisk) og lagt til funksjoner som " fluktsekvensen ".

American Standards Agency (ASA), som senere skulle bli American National Standards Institute ( ANSI ), publiserte først ASCII-kode i 1963. ASCII publisert i 1963 hadde en pil som pekte opp (↑) i stedet for circumflex (^) og en pil som peker til venstre i stedet for understreken (_). 1967-versjonen la til små bokstaver, endret navnene på noen kontrollkoder og flyttet både ACK- og ESC-kontrollkodene fra området med små bokstaver til kontrollkodeområdet.

ASCII ble oppdatert tilsvarende og publisert som ANSI X3.4-1968, ANSI X3.4-1977, og til slutt ANSI X3.4-1986. Andre standardorganer har publisert tegnkoder som er identiske med ASCII. Disse tegnkodene blir ofte referert til som ASCII, selv om ASCII bare er strengt definert av ASA/ANSI-standardene:

ASCII-kode er også inkludert i Unicode , og utgjør de første 128 (eller "laveste") tegnene.

ASCII-kontrolltegn

Se også: Kontrollkarakter

ASCII-koden reserverer de første 32 kodene (nummerert 0 til 31 i desimal) for kontrolltegn : koder som ikke opprinnelig var ment å representere utskrivbar informasjon, men for å kontrollere enheter (som skrivere ) som brukte ASCII. For eksempel representerer tegn 10 "linjemating"-funksjonen, som får en skriver til å mate papiret, og tegn 27 representerer "escape"-tasten som ofte finnes i øvre venstre hjørne av tastaturer .

Kode 127 (alle syv biter til én), et annet spesialtegn, tilsvarer "slett". Selv om denne funksjonen ligner andre kontrollkarakterer, utviklet designerne av ASCII denne koden for å kunne "slette" en seksjon med hullpapir (et populært lagringsmedium frem til 1980-tallet) ved å stanse så mange hull som mulig i en seksjon. , og erstatter tidligere informasjon. Siden kode 0 ble ignorert, var det mulig å forlate hull (områder med hull) og gjøre korrigeringer senere.

Mange av ASCII-kontrolltegnene ble brukt til å merke datapakker, eller for å kontrollere dataoverføringsprotokoller (for eksempel ENQuiry, som betyr: er det en stasjon der ute?, ACKnowledge: mottatt eller ", Start Of Header: Start Header, Start of TeXt : begynnelse av tekst, Slutt på tekst: slutt på tekst osv.) ESCape og SUBstitute tillot en kommunikasjonsprotokoll, for eksempel å merke binære data til å inneholde koder med samme kode som protokollens karakter, og som mottakeren kunne tolke dem som data i stedet for som riktige protokolltegn. Designerne av ASCII-koden utviklet skilletegnene for bruk i magnetbåndsystemer.

To av enhetskontrolltegnene, ofte kalt XON og XOFF , utførte vanligvis flytkontrollkarakterfunksjoner for å kontrollere flyten til en treg enhet (for eksempel en skriver) fra en rask enhet (for eksempel en datamaskin), slik at data ikke ble mettet mottakskapasiteten til den trege enheten og gikk tapt.

Tidlige brukere av ASCII tok i bruk noen av kontrollkodene for å representere "metainformasjon" som end-of-line, begynnelsen/slutten av et dataelement, etc. Disse tilordningene kom ofte i konflikt, så en del av arbeidet med å konvertere data fra ett format til et annet innebærer å gjøre de riktige metadatakonverteringene. For eksempel varierer tegnet som representerer slutten av linjen i tekstfiler med operativsystemet . Når filer kopieres fra ett system til et annet, må konverteringssystemet gjenkjenne disse tegnene som linjesluttmerker og handle deretter.

For øyeblikket bruker ASCII-brukere færre kontrolltegn (med noen unntak som "vognretur" eller "ny linje"). Moderne markup-språk, moderne kommunikasjonsprotokoller, overgangen fra tekstbaserte til grafikkbaserte enheter, nedgangen av fjernskrivere, hullkort og kontinuerlige skjemaer har gjort de fleste kontrolltegn foreldet.

Binær Desimal hex Forkortelse spille Navn betydning
0000 0000 0 00 null ^@ null-tegn
0000 0001 1 01 SOH ^A Start av overskrift
0000 0010 to 02 STX ^B Start av tekst
0000 0011 3 03 ETX ^C Slutt på tekst
0000 0100 4 04 EOT ^D Slutt på overføring
0000 0101 5 05 ENQ ^E Spørsmål
0000 0110 6 06 ACK ^F Kvittering for mottak
0000 0111 7 07 BEL ^G Dør-klokke
0000 1000 8 08 BS ^H Rekyl
0000 1001 9 09 HT ^I horisontal fane
0000 1010 10 0A LF ^J linjeskift
0000 1011 elleve 0B TV ^K Vertikal tabulering
0000 1100 12 0C FF ^L sidefeed
0000 1101 1. 3 0D CR ^M Bil retur
0000 1110 14 0E SW ^N deaktiver caps
0000 1111 femten 0F JA ^O snu caps
0001 0000 16 10 DLE ^P unnslippe datalink
0001 0001 17 elleve DC1 ^Q Enhetskontroll 1 ( XON )
0001 0010 18 12 DC2 ^R enhetskontroll 2
0001 0011 19 1. 3 DC3 ^S Enhetskontroll 3 ( XOFF )
0001 0100 tjue 14 DC4 ^T enhetskontroll 4
0001 0101 tjueen femten NAK ^U negativ anerkjennelse
0001 0110 22 16 SYN ^V standby-synkronisering
0001 0111 23 17 ETB ^W Slutt på overføringsblokk
0001 1000 24 18 HUND ^X Avbryt
0001 1001 25 19 MS ^Y slutten av midten
0001 1010 26 1A UNDER ^Z substitusjon
0001 1011 27 1 B ESC ^[ eller ESC Eksos
0001 1100 28 1 C FS ^\ filseparator
0001 1101 29 1D GS ^] gruppeseparator
0001 1110 30 1E RS ^^ postseparator
0001 1111 31 1F OSS ^_ stasjonsseparator
0111 1111 127 7F AV ^? eller av Undertrykk

ASCII utskrivbare tegn

Tegnet 'mellomrom' angir mellomrommet mellom ordene, og produseres vanligvis av mellomromstasten på et tastatur. Kodene 32 til 126 er kjent som utskrivbare tegn, og de representerer bokstaver, sifre, skilletegn og forskjellige symboler.

Syv-bits ASCII gir syv "nasjonale" tegn, og hvis din spesielle kombinasjon av maskinvare og programvare tillater det, kan du bruke tastekombinasjoner for å simulere andre internasjonale tegn: i disse tilfellene kan en backspace komme foran en backspace eller backtick (på britisk og amerikansk standarder, men bare i disse standardene, kalles også "åpnende enkelt anførselstegn"), en tilde eller et "pustetegn".

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{}|~

Binær des hex Representasjon
0010 0000 32 tjue mellomrom ( )
0010 0001 33 tjueen !
0010 0010 3. 4 22 "
0010 0011 35 23 #
0010 0100 36 24 $
0010 0101 37 25 %
0010 0110 38 26 &
0010 0111 39 27 '
0010 1000 40 28 (
0010 1001 41 29 )
0010 1010 42 2A *
0010 1011 43 2B +
0010 1100 44 2 C ,
0010 1101 Fire fem 2D -
0010 1110 46 2E .
0010 1111 47 2F /
0011 0000 48 30 0
0011 0001 49 31 1
0011 0010 femti 32 to
0011 0011 51 33 3
0011 0100 52 3. 4 4
0011 0101 53 35 5
0011 0110 54 36 6
0011 0111 55 37 7
0011 1000 56 38 8
0011 1001 57 39 9
0011 1010 58 3A :
0011 1011 59 3B ;
0011 1100 60 3C <
0011 1101 61 3D =
0011 1110 62 3E >
0011 1111 63 3F ?
 
Binær des hex Representasjon
0100 0000 64 40 @
0100 0001 65 41 EN
0100 0010 66 42 B.
0100 0011 67 43 C
0100 0100 68 44 D
0100 0101 69 Fire fem OG
0100 0110 70 46 F
0100 0111 71 47 G
0100 1000 72 48 H
0100 1001 73 49 Yo
0100 1010 74 4A J
0100 1011 75 4B K
0100 1100 76 4C L
0100 1101 77 4D M
0100 1110 78 4E N
0100 1111 79 4F ENTEN
0101 0000 80 femti P
0101 0001 81 51 Q
0101 0010 82 52 R
0101 0011 83 53 ja
0101 0100 84 54 T
0101 0101 85 55 ELLER
0101 0110 86 56 v
0101 0111 87 57 W
0101 1000 88 58 X
0101 1001 89 59 Y
0101 1010 90 5A Z
0101 1011 91 5B [
0101 1100 92 5C \
0101 1101 93 5 D ]
0101 1110 94 5E ^
0101 1111 95 5F _
 
Binær des hex Representasjon
0110 0000 96 60 `
0110 0001 97 61 en
0110 0010 98 62 b
0110 0011 99 63 c
0110 0100 100 64 d
0110 0101 101 65 og
0110 0110 102 66 F
0110 0111 103 67 g
0110 1000 104 68 h
0110 1001 105 69 Yo
0110 1010 106 6A j
0110 1011 107 6B k
0110 1100 108 6C han
0110 1101 109 6D m
0110 1110 110 6E n
0110 1111 111 6F enten
0111 0000 112 70 s
0111 0001 113 71 hva
0111 0010 114 72 r
0111 0011 115 73 s
0111 0100 116 74 du
0111 0101 117 75 eller
0111 0110 118 76 v
0111 0111 119 77 w
0111 1000 120 78 x
0111 1001 121 79 Y
0111 1010 122 7A z
0111 1011 123 7B {
0111 1100 124 7C |
0111 1101 125 7D }
0111 1110 126 7E ~

Strukturelle funksjoner

Andre navn for ASCII

RFC 1345 (publisert juni 1992) og IANA -tegnkoderegisteret gjenkjenner følgende alternative navn for ASCII for bruk på Internett.

Av disse er det bare navnene "US-ASCII" og "ASCII" som er mye brukt. De finnes ofte i den valgfrie "character code"-parameteren i Content-Type-overskriften til noen MIME -meldinger , i det ekvivalente "meta"-elementet i enkelte HTML -dokumenter og i tegnkodingsdeklarasjonens del av overskriften. i noen XML -dokumenter .

ASCII-varianter

Etter hvert som datateknologi spredte seg over hele verden, ble det utviklet forskjellige standarder, og selskaper utviklet mange varianter av ASCII-koden for å gjøre det lettere å skrive andre språk enn engelsk som bruker latinske alfabeter. Noen slike variasjoner kan bli klassifisert som " Utvidet ASCII ", selv om begrepet noen ganger brukes feil for å dekke alle varianter, selv de som ikke bevarer det originale syv-bits ASCII-tegnkodesettet.

ISO 646 (1972), det første forsøket på å avhjelpe den pro-engelske tegnkodingsskjevheten, skapte kompatibilitetsproblemer, siden det også var en 7-biters tegnkode. Du spesifiserte ingen tilleggskoder, så du tilordnet noen på nytt spesifikt for de nye språkene. På denne måten ble det umulig å vite hvilken variant teksten var kodet i, og følgelig kunne tekstbehandlerne kun håndtere én variant.

Teknologien ble forbedret og ga midler til å representere informasjonen kodet i den åttende biten av hver byte, og frigjorde denne biten, som la til ytterligere 128 tegnkoder som ble tilgjengelige for nye oppdrag. For eksempel utviklet IBM 8-biters kodesett, for eksempel kodesett 437 , som erstattet kontrolltegn med grafiske symboler som smileys, og kartla andre ekstra grafiske tegn til de øverste 128 bytene på kodesiden.

Noen operativsystemer, for eksempel DOS , kan fungere med slike kodesett, og produsenter av personlige datamaskiner inkluderte støtte for slike sider i maskinvaren.

Åtte-bits standarder som ISO 8859 og Mac OS Roman ble utviklet som ekte utvidelser til ASCII, og forlot de første 127 tegnene intakte og legger bare til tilleggsverdier over 7-bit. Dette tillot representasjon av et bredere spekter av språk, men disse standardene fortsatte å lide av inkompatibiliteter og begrensninger. Fortsatt i dag er ISO-8859-1 og dens variant Windows-1252 (noen ganger feilaktig kalt ISO-8859-1) og den originale 7-bits ASCII-koden de mest brukte tegnkodene.

Unicode og Universal Character Set (UCS) ISO/IEC 10646 definerer et mye større sett med tegn, og deres forskjellige kodingsformer har begynt å erstatte ISO 8859 og ASCII raskt i mange miljøer. Mens ASCII i utgangspunktet bruker 7-bits koder, bruker Unicode og UCS "kodepunkter" eller relativt abstrakte pekere: positive tall (inkludert null) som tildeler sekvenser på 8 eller flere biter til tegn. For å tillate kompatibilitet, tildeler Unicode og UCS de første 128 pekerne til de samme tegnene som ASCII-koden. På denne måten kan ASCII betraktes som en veldig liten delmengde av Unicode og UCS. Den populære UTF-8-kodingen anbefaler bruk av én til fire 8-bits verdier for hver peker, hvor de første 128 verdiene peker på de samme tegnene som ASCII. Andre tegnkodinger som UTF-16 ligner ASCII i hvordan de representerer de første 128 tegnene i Unicode, men har en tendens til å bruke 16 til 32 biter per tegn, så de krever riktig konvertering for kompatibilitet mellom de to tegnkodene.

Ordet ASCIIbetical (eller, mer vanlig, det "engelske" ordet ASCIIbetical ) beskriver sortering i henhold til ASCII-koderekkefølge i stedet for alfabetisk rekkefølge. [ 7 ]

Forkortelsen ASCIIZ eller ASCIZ refererer til en nullterminert tegnstreng . Det er veldig normalt at ASCII-koden integreres i andre mer sofistikerte kodingssystemer, og av denne grunn må det være klart hvilken rolle ASCII-koden spiller i tabellen eller tegnkartet til en datamaskin.

ASCII-kunst

_ _ ____ ____ ___ ___ __ _ _ __| |_ ____ /_\ / ___| / ___|_ _|_ _| / _` | '__| __|/ __ \ //_\\ \____ \| | | | | | | (_| | | | |_| ___/ / ___ \ ___) | |___ | | | | \__,_|_| \__|\____) /_/ \_\____/ \____|____|____|

ASCII-tegnkoden er støtte for en kunstnerisk minoritetsdisiplin, ASCII-kunst , som består av komposisjon av bilder med utskrivbare ASCII-tegn. Den resulterende effekten har blitt sammenlignet med pointillisme , ettersom bilder produsert med denne teknikken generelt sett blir verdsatt mer detaljert når de sees på avstand. ASCII-kunst begynte som en eksperimentell kunst, men den ble snart populær som et middel til å representere bilder på medier som ikke var i stand til å behandle grafikk, for eksempel teletyper , terminaler , e- poster eller noen skrivere.

Selv om du kan komponere ASCII-kunst manuelt ved hjelp av et tekstredigeringsprogram, kan du også automatisk konvertere bilder og videoer til ASCII ved hjelp av programvare, for eksempel det populære Aalib-biblioteket (fritt lisensiert). Aalib støttes av noen grafiske designprogrammer, spill og videospillere.

Se også

ASCII-varianter av spesifikke datamaskiner

Notater og referanser

  1. ^ a b Mackenzie, Charles E. (1980). "Kodede karaktersett, historie og utvikling". Systems Programming Series (1 utgave) (Addison-Wesley Publishing Co. Inc.). s. 6, 166, 211, 215, 217, 220, 223, 228, 236-238, 243-245, 247-253, 423, 425-428, 435-439. ISBN  0-201-14460-3 . LCCN  77090165 . [1] 
  2. Internasjonaliserte domenenavn - Ordliste , Internet Corporation for Assigned Names and Numbers (ICANN). Hentet 19. november 2008.
  3. International Organization for Standardization ( 1. desember 1975 ). ISO 646-tegnsettet . Internet Assigned Numbers Authority Registry . Åpnet 7. august 2005 .
  4. International Organization for Standardization ( 1. desember 1975 ). Internet Assigned Numbers Authority Registry . amerikansk versjon . Åpnet 7. august 2005 .
  5. Internet Assigned Numbers Authority (28. januar 2005). Tegnkoder . Åpnet 7. august 2005.
  6. ECMA International (desember 1991). Standard ECMA-6: 7-bits kodet tegnsett, 6. utgave Tilgang 17. desember 2005.
  7. Sjargongfil. ASCIIbetisk . Åpnet 17. desember 2005.

Generelle referanser

Eksterne lenker