American Standard Code for Information Interchange
The American Standard Kode for Information Interchange ( ASCII , alternativt US-ASCII , ofte [ æski ], uttales tysk "American Standard kode for Information Exchange" ) er en 7- bit - tegnkoding ; den tilsvarer den amerikanske versjonen av ISO 646 og fungerer som grunnlag for senere kodinger for tegnsett basert på flere biter .
ASCII-koden ble først godkjent av American Standards Association (ASA) 17. juni 1963 som ASA X3.4-1963-standarden og ble vesentlig oppdatert i 1967/1968 og sist oppdatert i 1986 ( ANSI X3.4-1986) av dens etterfølgerinstitusjoner og brukes fortsatt i dag. Tegnkodingen definerer 128 tegn, bestående av 33 ikke-utskrivbare og følgende 95 utskrivbare tegn, med mellomrom :
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
De utskrivbare tegn inkluderer latinske alfabetet i store og små bokstaver, de ti arabiske tall, samt noen skilletegn ( punktum , ord tegn ) og andre spesialtegn . Tegnesettet tilsvarer stort sett det som et tastatur eller skrivemaskin for engelsk . På datamaskiner og andre elektroniske enheter som viser tekst, lagres dette vanligvis i samsvar med ASCII eller bakoverkompatibel ( ISO 8859 , Unicode ).
De ikke-utskrivbare kontrolltegnene inneholder utgående tegn som linjetilførsel eller tabulatortegn , protokolltegn som slutten på overføring eller bekreftelse og skilletegn som datapostseparatorer.
Koding
ASCII | Des | Hex | Binær |
---|---|---|---|
A |
65 | 41 | (0) 100 0001 |
B |
66 | 42 | (0) 100 0010 |
C |
67 | 43 | (0) 100 0011 |
... | ... | ... | ... |
Z |
90 | 5A | (0) 101 1010 |
Et bitmønster på 7 bits er tildelt hvert tegn . Siden hver bit kan ha to verdier, er det 2 7 = 128 forskjellige bitmønstre som også kan tolkes som hele tall 0–127 ( heksadesimal 00h - 7Fh).
Den åttende biten, som ikke brukes til ASCII, kan brukes til feilkorrigeringsformål ( paritetsbit ) på kommunikasjonslinjene eller for andre kontrolloppgaver. I dag er det imidlertid nesten alltid brukt til å utvide ASCII til en 8-biters kode. Disse utvidelsene er i stor grad kompatible med den opprinnelige ASCII , slik at alle tegn som er definert i ASCII, også er kodet i de forskjellige utvidelsene ved hjelp av samme bitmønster. De enkleste utvidelsene er kodinger med språkspesifikke tegn som ikke er inkludert i det grunnleggende latinske alfabetet, se nedenfor .
sammensetning
kode | … 0 | …1 | ... 2 | ... 3 | ... 4 | ... 5 | ... 6 | ... 7 | ... 8. | ... 9 | ... A | ... B | ... C | ... D | ... E | ... F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0… | NUL | SOH | STX | ETX | EOT | ENQ | ACK | BEL | BS | HT | LF | VT | FF | CR | SÅ | SI |
1… | DLE | DC1 | DC2 | DC3 | DC4 | NAK | SYN | ETB | KAN | EM | UNDER | ESC | FS | GS | RS | OSS |
2 ... | SP | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
3 ... | 0 | 1 | 2 | 3 | 4. plass | 5 | Sjette | 7. | 8. plass | 9 | : | ; | < | = | > | ? |
4 ... | @ | EN. | B. | C. | D. | E. | F. | G | H | JEG. | J | K | L. | M. | N | O |
5 ... | P. | Spørsmål | R. | S. | T | U | V. | W. | X | Y | Z | [ | \ | ] | ^ | _ |
6 ... | ` | en | b | c | d | e | f | G | H | Jeg | j | k | l | m | n | O |
7 ... | s | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | DEL |
De første 32 ASCII-tegnkodene (fra 00 hex til 1F hex ) er forbeholdt kontrolltegn (kontrolltegn) ; se der for forklaring av forkortelsene i tabellen til høyre (eller over). Disse tegnene representerer ikke tegn, men tjener (eller ble brukt) til å kontrollere enheter som bruker ASCII (for eksempel skrivere). Kontrolltegn er for eksempel vognretur for linjeskift eller Bell (bjellen); definisjonen er historisk basert.
Kode 20 hex (SP) er mellomrommet (engl. Mellomrom eller blankt ) som brukes i en tekst som et blankt og separate ord på tastaturet og mellomromstasten genereres.
Kodene 21 hex til 7E hex står for utskrivbare tegn som inkluderer bokstaver, sifre og skilletegn ( skilletegn , ordtegn ). Bokstavene er bare små og store bokstaver i det latinske alfabetet . Bokstavvarianter som brukes på ikke-engelskspråklige - for eksempel de tyske umlautene - er ikke inkludert i ASCII-tegnsettet. På samme måte mangler typografisk korrekte bindestreker og anførselstegn, typografien er begrenset til skrivemaskintypen . Hensikten var informasjonsutveksling , ikke utskrift .
Kode 7F hex (alle syv bits satt til en) er et spesialtegn som også er kjent som en sletting karakter ( DEL ) . Tidligere ble denne koden brukt som et kontrolltegn for å kunne slette et allerede stanset tegn på stanset bånd eller stansede kort ved å sette alle biter, dvs. ved å stanse ut alle syv markeringene. Dette var den eneste måten å slette, da hull som allerede har eksistert ikke kan angres. Områder uten hull (dvs. med koden 00 hex ) ble hovedsakelig funnet i begynnelsen og slutten av et stanset tape ( NUL ) .
Av denne grunn var det bare 126 tegn i selve ASCII, fordi bitmønstrene 0 (0000000) og 127 (1111111) ikke tilsvarte noen tegnkoder. Kode 0 ble senere tolket i programmeringsspråket C som "slutten på tegnstrengen"; Forskjellige grafiske symboler er tildelt karakteren 127.
historie
Teletype
En tidlig form for tegnkodingen var morsekoden . Den ble kastet ut av telegrafnettverkene med innføring av teleskrivere og erstattet av Baudot-koden og Murray-koden . Det var da bare et lite skritt fra 5-biters Murray-koden til 7-biters ASCII - ASCII ble også først brukt for visse amerikanske teleskrivermodeller , for eksempel Teletype ASR33 .
Den første versjonen, fortsatt uten små bokstaver og med små avvik fra dagens ASCII for kontroll og spesialtegn, ble opprettet i 1963.
Den andre formen for ASCII-standarden fulgte i 1965. Selv om standarden ble godkjent, ble den aldri publisert og ble derfor aldri brukt. Årsaken til dette var at det ble rapportert til ASA at ISO (Den internasjonale standardiseringsorganisasjonen) standardiserte et tegnsett som lignet på, men i strid med denne standarden.
I 1968 ble versjonen av ASCII-standarden som fortsatt er gyldig i dag etablert.
Des | Hex | ASCII 1963 (foreldet) |
ASCII 1965 (forkastet) |
ASCII 1968 (nåværende) |
---|---|---|---|---|
0-63 | 00-3F | se normal sammensetning | ||
64 | 40 | @ |
` |
@
|
65-91 | 41-5B | se normal sammensetning | ||
92 | 5C | \ |
~ |
\
|
93 | 5D | se normal sammensetning | ||
94 | 5E |
↑
|
^
|
|
95 | 5F |
←
|
_
|
|
96 | 60 | ledig | @ |
`
|
97-122 | 61-7A | ledig |
a - z
|
|
123 | 7B | ledig |
{
|
|
124 | 7C | ledig | ¬ |
|
|
125 | 7D | ledig |
}
|
|
126 | 7E | ESC |
| |
~
|
127 | 7F | se normal sammensetning |
datamaskin
I begynnelsen av datamaskinalderen utviklet ASCII seg til standardkoden for tegn. For eksempel ble mange terminaler ( VT100 ) og skrivere bare kontrollert med ASCII.
For koding av latinske tegn er nesten utelukkende i mainframes, den inkompatible med ASCII 8-bits koding EBCDIC brukte IBM parallelt med ASCII for sin / System 360 utviklet, da en seriøs konkurrent. Bruken av alfabetet er vanskeligere i EBCDIC, fordi det er delt inn i to separate kodeområder. IBM selv brukte ASCII til interne dokumenter. ASCII ble støttet av president Lyndon B. Johnsons ordning fra 1968 om å bruke den i regjeringskontorer.
Brukes til andre språk
Med International Alphabet 5 (IA5) ble en 7-bits koding basert på ASCII standardisert som ISO 646 i 1963. Referanseversjonen (ISO 646-IRV) tilsvarer ASCII med unntak av en posisjon. For å kunne vise bokstaver og spesialtegn på forskjellige språk (for eksempel de tyske umlautene) ble 12 tegnposisjoner gitt for omdefinering ( #$@[\]^`{|}~
). Samtidig visning er ikke mulig. Manglende tilpasning av programvaren til varianten som ble brukt til skjermen førte ofte til utilsiktede morsomme resultater, f.eks. B. Da Apple II ble slått på, dukket "APPLE ÜÄ" opp i stedet for "APPLE] [".
Siden det er tegn som brukes i programmering, spesielt z. B. de forskjellige parentesene, har programmeringsspråk blitt oppgradert for internasjonalisering ved å bruke erstatningskombinasjoner ( digraphs ). Bare tegn fra den uforanderlige delen av ISO 646 ble brukt til koding. Kombinasjonene er språkspesifikke. For Pascal (*
og *)
krøllete parenteser tilsvarer {}
for eksempel ( ), mens C <%
og %>
sørger for det.
Utvidelser
Bruk av de resterende 128 posisjonene i byten
For å overvinne inkompatibiliteten til nasjonale 7-biters varianter av ASCII, utviklet forskjellige produsenter opprinnelig sine egne ASCII-kompatible 8-bits koder (dvs. de som samsvarer med ASCII i de første 128 posisjonene). The code side 437 heter kode har lenge vært den mest brukte, kom han på IBM PC under engelsk MS-DOS , og er fortsatt i DOS vinduet på engelsk Microsoft Windows brukes. I deres tyske installasjoner har den vesteuropeiske kodesiden 850 vært standarden siden MS-DOS 3.3 .
Åtte biter ble også brukt i senere standarder som ISO 8859 . Det er flere varianter, for eksempel ISO 8859-1 for de vesteuropeiske språkene, som ble vedtatt i Tyskland som DIN 66303 . Tyskspråklige versjoner av Windows (unntatt DOS-vinduer) bruker Windows-1252- kodingen basert på ISO 8859-1 - dette er grunnen til at de tyske umlautene for eksempel ser feil ut når tekstfiler ble opprettet under DOS og sett under Windows.
Utover 8 biter
Mange eldre programmer som brukte den åttende biten til egne formål, taklet det ikke. De har ofte blitt tilpasset de nye kravene i løpet av tiden.
Selv 8-bits koder, der en byte sto for ett tegn, tilbød for lite plass til å imøtekomme alle tegn i menneskelig skrivekultur samtidig. Dette gjorde flere forskjellige spesialiserte utvidelser nødvendige. I tillegg er det noen ASCII-kompatible koder, spesielt for den østasiatiske regionen, som enten bytter mellom forskjellige kodetabeller eller krever mer enn en byte for hvert ikke-ASCII-tegn. Imidlertid er ingen av disse 8-bits utvidelsene "ASCII", fordi det bare beskriver den ensartede 7-biters koden.
For å oppfylle kravene til de forskjellige språkene ble Unicode (identisk i tegnsettet til ISO 10646 ) utviklet. Den bruker opptil 32 bits per tegn og kan dermed skille mellom over fire milliarder forskjellige tegn, men er begrenset til rundt en million tillatte kodepunkter . Dette betyr at alle tegn som tidligere ble brukt av mennesker kan vises, forutsatt at de er inkludert i Unicode-standarden. UTF-8 er en 8-bits koding av Unicode som er bakoverkompatibel med ASCII. Ett tegn kan ta opp et til fire 8-biters ord . Syv-bits varianter trenger ikke lenger å brukes, men Unicode kan også kodes i syv bits ved hjelp av UTF-7 . UTF-8 ble standarden på mange operativsystemer. For eksempel bruker Apples macOS og noen Linux-distribusjoner UTF-8 som standard, og mer enn 90% av nettstedene er opprettet i UTF-8.
Formatering av merker sammenlignet med markeringsspråk
ASCII inneholder bare noen få tegn som vanligvis brukes til formatering eller strukturering av tekst; disse kom frem fra telekopiernes kontrollkommandoer . Disse inkluderer spesielt linjetilførselen, vognreturen, det horisontale fanetegnet , skjemaet og det vertikale fanetegnet. I typiske ASCII- tekstfiler , i tillegg til de utskrivbare tegnene, er det vanligvis bare vognretur eller linjefôr for å markere slutten av linjen; i DOS og Windows-systemer brukes begge begge etter hverandre, med eldre Apple- og Commodore- datamaskiner (uten Amiga ) er det bare vognreturen og på Unix-lignende og Amiga-systemer bare linjefôringen. Bruken av tilleggstegn for tekstformatering håndteres annerledes. Markeringsspråk som HTML brukes nå oftere til å formatere tekst .
Kompatible tegnkodinger
De fleste tegnkodingene er utformet på en slik måte at de bruker samme kode som ASCII for tegn mellom 0 ... 127 og området over 127 for andre tegn.
Kodninger med fast lengde (utvalg)
Her er det et fast antall byte for ett tegn. I de fleste kodinger er dette en byte per tegn - et enkelt byte tegnsett eller kort sagt SBCS. Med de østasiatiske skriptene er det to eller flere byte per tegn, noe som betyr at disse kodingene ikke lenger er ASCII-kompatible. De kompatible SBCS-tegnsettene tilsvarer ASCII-utvidelsene diskutert ovenfor:
- ISO 8859 med 15 forskjellige tegnkoder for å dekke alle europeiske språk, tyrkisk , arabisk , hebraisk og thai (se tabellen til høyre)
- MacRoman , MacCyrillic og andre proprietære tegnsett for Apple Mac-datamaskiner før Mac OS X
- DOS- kodesider (f.eks. 437, 850) og Windows-kodesider (f.eks. Windows-1252 )
- KOI8-R for russisk og KOI8-U for ukrainsk
- ARMSCII-8 og ARMSCII-8a for armensk
- GEOSTD for georgisk
- ISCII for alle indiske språk
- TSCII for tamil
|
|
|
Kodninger med variabel lengde
For å kunne kode flere tegn, er tegnene 0 til 127 kodet i en byte, andre tegn blir kodet av flere byte med verdier større enn 127:
- UTF-8 og GB 18030 for Unicode
- ISO 6937 for europeiske språk med latinsk skrift
- Big5 for tradisjonell kinesisk ( Republikken Kina (Taiwan) , utenlandsk kinesisk )
- EUC (utvidet UNIX-koding) for flere østasiatiske språk
- GB (Guojia Biaozhun) for forenklet kinesisk ( PRC )
ASCII-tabell
I tillegg til heksadesimale koder, viser tabellen nedenfor også desimal- og oktalkodene .
|
|
|
|
Eponymer
Asteroiden (3568) ASCII , oppdaget i 1936, ble oppkalt etter tegnkodingen i 1988.
Se også
utgifter
- American Standards Association: American Standard Code for Information Interchange. ASA X3.4-1963. American Standards Association, New York 1963 ( PDF 11 sider ( Memento fra 26. mai 2016 i Internet Archive ))
- American Standards Association: American Standard Code for Information Interchange. ASA X3.4-1965. American Standards Association, New York 1965 (godkjent men ikke publisert)
- United States of America Standards Institute: USAs standardkode for informasjonsutveksling. USAS X3.4-1967. United States of America Standards Institute, 1967.
- United States of America Standards Institute: USAs standardkode for informasjonsutveksling. USAS X3.4-1968. United States of America Standards Institute, 1968.
- American National Standards Institute: American National Standard for Information Systems. ANSI X3.4-1977. 1977.
- American National Standards Institute: American National Standard for Information Systems. Kodede tegnsett. 7-biters American National Standard Code for Information Interchange (7-bit ASCII). ANSI X3.4-1986. 1986.
- Ytterligere revisjoner:
- 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)
litteratur
- Jacques André: Caractères numériques: introduksjon. I: Cahiers GUTenberg. Volum 26, mai 1997, ISSN 1257-2217 , s. 5-44, (fransk).
- Yannis Haralambous: Fonter og kodinger. Fra Unicode til avansert typografi og alt i mellom. Oversatt av P. Scott Horne. O'Reilly, Beijing et al. 2007, ISBN 978-0-596-10242-5 (engelsk).
- Peter Karow: Digitale skrifttyper. Presentasjon og formater. 2. forbedret utgave. Springer, Berlin et al. 1992, ISBN 3-540-54917-X .
- Mai-Linh Thi Truong, Jürgen Siebert, Erik Spiekermann (red.): FontBook. Digital typeface Compendium (= FontBook 4). 4. reviderte og utvidede utgave. FSI FontShop International, Berlin 2006, ISBN 3-930023-04-0 (på engelsk).
weblenker
- RFC 20 . - ASCII-format for nettverksutveksling . 16. oktober 1969 (ANSI X 3.4-1968 - engelsk).
- ITU T.50 (09/1992) Internasjonalt alfabet nr. 5 (engelsk)
- ISO / IEC 646: 1991 (engelsk)
- ASA X3.4-1963 (engelsk)
- Merknader om kontrolltegnene (engelsk)
- ASCII-tabell med forklaringer (tysk)
- Konvertering fra og til desimaler, oktaler, heksadesimal og binær ASCII-notasjon (engelsk)
Individuelle bevis
- ↑ American Standards Association (red.): American Standard Code for Information Interchange . 1963 ( skanner ).
- ^ Fred W. Smith: Ny amerikansk standardkode for informasjonsutveksling . I: Western Union Technical Review . April 1964, s. 50-58 ( worldpowersystems.com ).
- ↑ United States of America Standards Institute (red.): USAs standardkode for informasjonsutveksling USAS X3.4-1967 . 1967.
- ↑ American National Standards Institute (red.): American National Standard for Information Systems - Coded Character Sets - 7-Bit American Standard Code for Information Interchange (7-Bit ASCII) ANSI X3.4-1986 . 1986 ( unicode.org [PDF; 1.7 MB ] ANSI INCITS 4-1986 [R2002]).
- ↑ a b ASA / USASI / ANSI + ISO ( Memento fra 16. januar 2010 i Internet Archive )
- ↑ Grunnleggende om teknisk informatikk for teknisk informatikk, HAW Hamburg, avsnitt 3.5.1 ( Memento fra 28. september 2007 i Internet Archive ) (PDF)
- ↑ w3techs.com
- ↑ Minor Planet Circ. 12973 (PDF)