Amerikansk standardkode for informationsudveksling
Den amerikanske Standard til udveksling af information ( ASCII alternativt US-ASCII , ofte [ æski ], udtalt tysk "American Standard Code for Information Exchange" ) er en 7 bit - tegnkodning ; det svarer til den amerikanske version af ISO 646 og fungerer som grundlag for senere kodninger for tegnsæt baseret på flere bits .
ASCII-koden blev først godkendt af American Standards Association (ASA) den 17. juni 1963 som ASA X3.4-1963-standarden og blev væsentligt opdateret i 1967/1968 og sidst opdateret i 1986 ( ANSI X3.4-1986) af dens efterfølgerinstitutioner og bruges stadig i dag. Tegnkodningen definerer 128 tegn, der består af 33 ikke-udskrivbare og følgende 95 udskrivbare tegn, der starter med mellemrummet :
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
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 udskrivbare tegn inkluderer det latinske alfabet i store og små bogstaver, de ti arabiske tal samt nogle tegnsætningstegn ( skilletegn , ordmærker ) og andre specialtegn . Sættet med tegn svarer stort set til tastaturet eller skrivemaskinen til det engelske sprog . I computere og andre elektroniske enheder, der viser tekst, lagres dette normalt i overensstemmelse med ASCII eller bagudkompatibel ( ISO 8859 , Unicode ).
De ikke-udskrivbare kontroltegn indeholder outputtegn som f.eks. Linjefeed eller fanetegn , protokoltegn som f.eks. Afslutning af transmission eller bekræftelse og separatorer som f.eks. Datapostseparatorer.
Kodning
ASCII | Dec | 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 tildeles hvert tegn . Da hver bit kan have to værdier, er der 2 7 = 128 forskellige bitmønstre, der også kan tolkes som hele tallene 0–127 ( hexadecimal 00h - 7Fh).
Den ottende bit, som ikke bruges til ASCII, kan bruges til fejlkorrektion ( paritetsbit ) på kommunikationslinjerne eller til andre kontrolopgaver. I dag bruges den dog næsten altid til at udvide ASCII til en 8-bit kode. Disse udvidelser er stort set kompatible med den originale ASCII , så alle tegn, der er defineret i ASCII, også kodes i de forskellige udvidelser ved hjælp af det samme bitmønster. De enkleste udvidelser er kodninger med sprogspecifikke tegn, der ikke er inkluderet i det grundlæggende latinske alfabet, se nedenfor .
sammensætning
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 | SUB | ESC | FS | GS | RS | OS |
2… | SP | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
3… | 0 | 1 | 2 | 3 | 4. | 5 | 6. | 7. | 8. | 9 | : | ; | < | = | > | ? |
4… | @ | EN. | B. | C. | D. | E. | F. | G | H | JEG. | J | K | L. | M. | N | O |
5… | P. | Q | 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 -tegnkoder (fra 00 hex til 1F hex ) er forbeholdt kontroltegn (kontroltegn) ; se der for forklaring af forkortelserne i tabellen til højre (eller ovenfor). Disse tegn repræsenterer ikke tegn, men tjener (eller blev brugt) til at styre enheder, der bruger ASCII (f.eks. Printere). Kontroltegn er f.eks. Vognreturen for linjeskiftet eller Bell (klokken); dens definition er historisk baseret.
Kode 20 hex (SP) er mellemrummet (engl. Mellemrum eller blank ), der bruges i en tekst som et tomt og separate ord på tastaturet og ved mellemrumstasten genereres.
Koderne 21 hex til 7E hex står for udskrivbare tegn, der indeholder bogstaver, cifre og tegnsætningstegn ( tegnsætningstegn , ordtegn ). Bogstaverne er bare små og store bogstaver fra det latinske alfabet . Bogstavvarianter, der bruges på ikke-engelske sprog- f.eks. De tyske umlauts- er ikke inkluderet i ASCII-tegnsættet. På samme måde mangler typografisk korrekte streger og anførselstegn, typografien er begrænset til skrivemaskintypen . Formålet var informationsudveksling , ikke udskrivning .
Kode 7F hex (alle syv bits sat til en) er en speciel karakter, der også er kendt som en sletning karakter ( DEL ) . Tidligere blev denne kode brugt som et kontroltegn for at kunne slette et allerede udstanset tegn på hulbånd eller hulkort ved at indstille alle bits, dvs. ved at slå alle syv markeringer ud. Dette var den eneste måde at slette, da huller, når de først har eksisteret, ikke kan fortrydes. Områder uden huller (dvs. med koden 00 hex ) blev hovedsageligt fundet i begyndelsen og slutningen af en perforeret strimmel ( NUL ) .
Af denne grund var der kun 126 tegn i den egentlige ASCII, fordi bitmønstrene 0 (0000000) og 127 (1111111) ikke svarede til nogen tegnkoder. Kode 0 blev senere fortolket i C -programmeringssproget som "slutningen på tegnstrengen"; Der er tildelt forskellige grafiske symboler til tegnet 127.
historie
Teleprinter
En tidlig form for tegnkodning var morse -kode . Det blev fjernet fra telegrafnetværkerne med indførelsen af teleprintere og erstattet af Baudot -koden og Murray -koden . Det var da kun et lille skridt fra 5-bit Murray-koden til 7-bit ASCII-ASCII blev også først brugt til visse amerikanske teleprinter- modeller , f.eks. Teletype ASR33 .
Den første version, stadig uden små bogstaver og med små afvigelser fra nutidens ASCII for kontrol- og specialtegn, blev oprettet i 1963.
Den anden form for ASCII -standarden fulgte i 1965. Selvom standarden blev godkendt, blev den aldrig offentliggjort og derfor aldrig anvendt. Grunden til dette var, at det blev rapporteret til ASA, at ISO (International Standards Organization) standardiserede et tegnsæt, der lignede, men lidt modsiger denne standard.
I 1968 blev den version af ASCII -standarden, der stadig er gældende i dag, etableret.
Dec | Hex | ASCII 1963 (forældet) |
ASCII 1965 (kasseret) |
ASCII 1968 (nuværende) |
---|---|---|---|---|
0-63 | 00-3F | se normal sammensætning | ||
64 | 40 | @ |
` |
@
|
65-91 | 41-5B | se normal sammensætning | ||
92 | 5C | \ |
~ |
\
|
93 | 5D | se normal sammensætning | ||
94 | 5E |
↑
|
^
|
|
95 | 5F |
←
|
_
|
|
96 | 60 | ubeboet | @ |
`
|
97-122 | 61-7A | ubeboet |
a - z
|
|
123 | 7B | ubeboet |
{
|
|
124 | 7C | ubeboet | ¬ |
|
|
125 | 7D | ubeboet |
}
|
|
126 | 7E | ESC |
| |
~
|
127 | 7F | se normal sammensætning |
computer
I begyndelsen af computeralderen udviklede ASCII sig til standardkoden for tegn. For eksempel blev mange terminaler ( VT100 ) og printere kun styret med ASCII.
Til kodning af latinske tegn bruges 8-bit kodning EBCDIC , der er inkompatibel med ASCII , næsten udelukkende på mainframes , som IBM udviklede parallelt med ASCII til sit System / 360 , på det tidspunkt en seriøs konkurrent. Brugen af alfabetet er vanskeligere i EBCDIC, fordi det er opdelt i to separate kodeområder. IBM brugte selv ASCII til interne dokumenter. ASCII blev støttet af præsident Lyndon B. Johnsons arrangement fra 1968 om at bruge det på regeringskontorer.
Brug til andre sprog
Med International Alphabet 5 (IA5) blev en 7-bit kodning baseret på ASCII standardiseret som ISO 646 i 1963. Referenceversionen (ISO 646-IRV) svarer til ASCII bortset fra én position. For at kunne vise bogstaver og specialtegn på forskellige sprog (f.eks. De tyske umlauts) blev der givet 12 tegnpositioner til redefinition ( #$@[\]^`{|}~
). Samtidig visning er ikke mulig. Manglende tilpasning af softwaren til den variant, der bruges til displayet, førte ofte til utilsigtet sjove resultater, f.eks. B. Da Apple II blev tændt, dukkede "APPLE ÜÄ" op i stedet for "APPLE] [".
Da der er tegn, der bruges i programmering, især z. For eksempel er de forskellige parenteser, programmeringssprog blevet opgraderet til internationalisering ved hjælp af substitutkombinationer ( digrafer ). Kun tegn fra den uforanderlige del af ISO 646 blev brugt til kodning. Kombinationerne er sprogspecifikke. For eksempel svarer Pascal (*
og *)
de krøllede parenteser til ( {}
), mens C <%
og %>
sørger for det.
Udvidelser
Brug af de resterende 128 positioner i byte
For at overvinde uforeneligheden mellem nationale 7-bit varianter af ASCII udviklede forskellige producenter i første omgang deres egne ASCII-kompatible 8-bit koder (dvs. dem, der matcher ASCII i de første 128 positioner). Den kode, der kaldes kode side 437 , var den mest udbredte i lang tid. Det kom på IBM PC under engelsk MS-DOS , og bruges stadig i dag i DOS-vinduet af engelsk Windows . I deres tyske installationer har den vesteuropæiske kode side 850 været standarden siden MS-DOS 3.3 .
Otte bits blev også brugt i senere standarder såsom ISO 8859 . Der er flere varianter, f.eks. ISO 8859-1 for de vesteuropæiske sprog, som blev vedtaget i Tyskland som DIN 66303 . Tysksprogede versioner af Windows (undtagen DOS-vinduer) bruger Windows-1252- kodningen baseret på ISO 8859-1 -derfor ser de tyske umlauts f.eks. Forkert ud, hvis tekstfiler blev oprettet under DOS og set under Windows.
Ud over 8 bits
Mange ældre programmer, der brugte den ottende bit til deres egne formål, kunne ikke klare det. De er ofte blevet tilpasset de nye krav i løbet af tiden.
Selv 8-bit koder, hvor en byte stod for et tegn, tilbød for lidt plads til at rumme alle karakterer i den menneskelige skrivekultur på samme tid. Dette gjorde flere forskellige specialiserede udvidelser nødvendige. Derudover er der nogle ASCII-kompatible koder, især for den østasiatiske region, som enten skifter mellem forskellige kodetabeller eller kræver mere end en byte for hvert ikke-ASCII-tegn. Ingen af disse 8-bit udvidelser er imidlertid "ASCII", fordi det kun beskriver den ensartede 7-bit kode.
For at imødekomme kravene på de forskellige sprog blev Unicode (identisk med sin karakter sat til ISO 10646 ) udviklet. Den bruger op til 32 bits pr. Tegn og kan således differentiere mellem over fire milliarder forskellige tegn, men er begrænset til omkring en million tilladte kodepunkter . Det betyder, at alle tegn, der tidligere har været brugt af mennesker, kan vises, forudsat at de er inkluderet i Unicode -standarden. UTF-8 er en 8-bit kodning af Unicode, der er bagudkompatibel med ASCII. Et tegn kan rumme et til fire 8-bit ord . Syv-bit varianter skal ikke længere bruges, men Unicode kan også kodes i syv bit ved hjælp af UTF-7 . UTF-8 blev standarden på mange operativsystemer. For eksempel bruger Apples macOS og nogle Linux-distributioner UTF-8 som standard, og mere end 90% af webstederne er oprettet i UTF-8.
Formatering af mærker sammenlignet med markeringssprog
ASCII indeholder kun få tegn, der generelt bruges til formatering eller strukturering af tekst; disse fremkom fra telekopiernes kontrolkommandoer . Disse omfatter især linjefødning, vognretur, det vandrette fanetegn , formularindføringen og det lodrette fanetegn. I typiske ASCII -tekstfiler er der ud over de tegn, der kan udskrives, normalt kun vognreturen eller linjefødet for at markere slutningen af linjen; i DOS- og Windows-systemer bruges begge normalt efter hinanden, med ældre Apple- og Commodore- computere (uden Amiga ) kun vognretur og på Unix-lignende og Amiga-systemer kun linjefødning. Brugen af yderligere tegn til tekstformatering håndteres forskelligt. Markup -sprog som HTML bruges nu mere almindeligt til at formatere tekst .
Kompatible tegnkodninger
De fleste tegnkodninger er designet på en sådan måde, at de bruger den samme kode som ASCII for tegn mellem 0 ... 127 og området over 127 for andre tegn.
Koder med fast længde (udvalg)
Her er der et fast antal bytes for et tegn. I de fleste kodninger er dette en byte pr. Tegn - enkelt byte tegnsæt eller SBCS for kort. Med de østasiatiske scripts er der to eller flere bytes pr. Tegn, hvilket betyder, at disse kodninger ikke længere er ASCII-kompatible. De kompatible SBCS -tegnsæt svarer til ASCII -udvidelserne, der er diskuteret ovenfor:
- ISO 8859 med 15 forskellige tegnkodninger til at dække alle europæiske sprog, tyrkisk , arabisk , hebraisk og thai (se tabellen til højre)
- MacRoman , MacCyrillic og andre proprietære tegnsæt til Apple Mac -computere 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 sprog
- TSCII for tamilsk
|
|
|
Koder med variabel længde
For at kunne kode flere tegn, er tegnene 0 til 127 kodet i en byte, andre tegn er kodet af flere bytes med værdier større end 127:
- UTF-8 og GB 18030 til Unicode
- ISO 6937 for europæiske sprog med latinsk skrift
- Big5 for traditionelt kinesisk ( Republikken Kina (Taiwan) , oversøisk kinesisk )
- EUC (udvidet UNIX -kodning) til flere østasiatiske sprog
- GB (Guojia Biaozhun) for forenklet kinesisk ( Kina )
ASCII -tabel
Ud over de hexadecimale koder viser følgende tabel også decimal- og oktalkoderne .
|
|
|
|
Eponymer
Asteroiden (3568) ASCII , opdaget i 1936, blev opkaldt efter tegnkodningen i 1988.
Se også
udgifter
- 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. maj 2016 i internetarkivet ))
- American Standards Association: American Standard Code for Information Interchange. ASA X3.4-1965. American Standards Association, New York 1965 (godkendt, men ikke offentliggjort)
- Amerikas Forenede Stater Standards Institute: USA Standard Code for Information Interchange. USAS X3.4-1967. United States of America Standards Institute, 1967.
- Amerikas Forenede Stater Standards Institute: USA Standard Code for Information Interchange. 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 tegnsæt. 7-bit American National Standard Code for Information Interchange (7-bit ASCII). ANSI X3.4-1986. 1986.
- Yderligere revisioner:
- 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: introduktion. I: Cahiers GUTenberg. Bind 26, maj 1997, ISSN 1257-2217 , s. 5-44, (fransk).
- Yannis Haralambous: skrifttyper og kodninger. Fra Unicode til avanceret typografi og alt derimellem. Oversat af P. Scott Horne. O'Reilly, Beijing et al. 2007, ISBN 978-0-596-10242-5 (engelsk).
- Peter Karow: Digitale skrifttyper. Præsentation og formater. 2. forbedrede udgave. Springer, Berlin et al. 1992, ISBN 3-540-54917-X .
- Mai-Linh Thi Truong, Jürgen Siebert, Erik Spiekermann (red.): FontBook. Digital skrifttype -kompendium (= FontBook 4). 4. reviderede og udvidede udgave. FSI FontShop International, Berlin 2006, ISBN 3-930023-04-0 (engelsk).
Weblinks
- RFC 20 . - ASCII -format til Network Interchange . 16. oktober 1969 (ANSI X 3.4-1968 - engelsk).
- ITU T.50 (09/1992) Internationalt alfabet nr. 5 (engelsk)
- ISO / IEC 646: 1991 (engelsk)
- ASA X3.4-1963 (engelsk)
- Bemærkninger om kontroltegn (engelsk)
- ASCII -tabel med forklaringer (tysk)
- Konvertering fra og til decimaler, oktaler, hexadecimal og binær ASCII -notation (engelsk)
Individuelle beviser
- ↑ American Standards Association (red.): American Standard Code for Information Interchange . 1963 ( scanninger ).
- ^ Fred W. Smith: New American Standard Code for Information Interchange . I: Western Union Technical Review . April 1964, s. 50-58 ( worldpowersystems.com ).
- ↑ United States of America Standards Institute (red.): USAs standardkode for informationsudveksling 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 ( erindring fra 16. januar 2010 i internetarkivet )
- ^ Grundlæggende om teknisk informatik for teknisk informatik, HAW Hamburg, afsnit 3.5.1 ( Memento fra 28. september 2007 i internetarkivet ) (PDF)
- ↑ w3techs.com
- ↑ Minor Planet Circ. 12973 (PDF)