Tecken (beräkning) -
Character (computing)

Från Wikipedia, den fria encyklopedin

Denna artikel innehåller specialtecken . Utan korrekt återgivningsstöd kan du se frågetecken, rutor eller andra symboler .

I dator- och maskinbaserad telekommunikationsterminologi är ett tecken en informationsenhet som ungefär motsvarar ett grafem , en grafemliknande enhet eller en symbol , till exempel i ett alfabet eller en text i skriftligt form av ett naturligt språk .

Exempel på tecken inkluderar bokstäver , numeriska siffror , vanliga skiljetecken (t.ex. "." Eller "-") och blanksteg . Konceptet innehåller också kontrolltecken , som inte motsvarar synliga symboler utan snarare instruktioner för att formatera eller bearbeta texten. Exempel på kontrolltecken inkluderar vagnretur eller flik samt instruktioner till skrivare eller andra enheter som visar eller på annat sätt bearbetar text.

Tecken kombineras vanligtvis till strängar .

Historiskt sett användes termen karaktär också för att bara beteckna ett visst antal sammanhängande bitar . Medan ett tecken oftast antas referera till 8 bitar (en byte ) idag, var andra definitioner, som 6-bitars teckenkod en gång populär (med endast stora bokstäver , medan tillräckligt många bitar för att också representera gemener , inte med siffror och skiljetecken tillåtet för), och även 5-bitars Baudot-kod har använts tidigare också, och även om termen också har tillämpats på 4 bitar med endast 16 möjliga värden, var den inte avsedd att, eller kan, representera hela Engelska alfabetet. Se även Universal Character Set-tecken , där 8 bitar inte räcker för att representera, medan alla kan representeras med en eller flera 8-bitars kodenheter med UTF-8 .

Kodning

Datorer och kommunikationsutrustning representerar tecken med hjälp av en teckenkodning som tilldelar varje tecken något - en heltalskvantitet som vanligtvis representeras av en sekvens av siffror - som kan lagras eller överföras via ett nätverk . Två exempel på vanliga kodningar är ASCII och UTF-8- kodning för Unicode . Medan de flesta teckenkodningar mappar tecken till siffror och/eller bitsekvenser, representerar morskod istället tecken med hjälp av en serie elektriska impulser av varierande längd.

Terminologi

som indexeras av den numeriska koden för motsvarande tecken.

Med tillkomsten och utbredd acceptans av Unicode och bitagnostiska kodade teckenuppsättningar ses en karaktär alltmer som en informationsenhet , oberoende av någon särskild visuell manifestation. Den ISO / IEC 10646 (Unicode) internationell standard definierar karaktär , eller abstrakta tecken som "en medlem av en uppsättning av element som används för organisation, kontroll, eller representation av data". Unicodes definition kompletterar detta med förklarande anteckningar som bland annat uppmuntrar läsaren att skilja mellan tecken, grafem och glyfer. Sådan differentiering är ett exempel på det bredare temat separationen mellan presentation och innehåll .

Till exempel används den hebreiska bokstaven aleph ("א") ofta av matematiker för att beteckna vissa typer av oändlighet (ℵ), men den används också i vanlig hebreisk text. I Unicode betraktas dessa två användningsområden som olika tecken och har två olika Unicode numeriska identifierare (" kodpunkter "), även om de kan återges identiskt. Omvänt kan det kinesiska logogrammet för vatten ("水") ha något annorlunda utseende i japanska texter än i kinesiska texter, och lokala typsnitt kan återspegla detta. Men ändå betraktas de i Unicode som samma karaktär och delar samma kodpunkt.

Unicode -standarden skiljer också mellan dessa abstrakta tecken och kodade tecken eller kodade tecken som har kopplats ihop med numeriska koder som underlättar deras representation i datorer.

Kombinera karaktär

Den kombinerande karaktären adresseras också av Unicode. Till exempel allokerar Unicode en kodpunkt till var och en av dem

  • 'jag' (U+0069),
  • den kombinerande diaeresen (U+0308) och
  • 'ï' (U+00EF).

Detta gör det möjligt att koda mitt tecken i ordet 'naivt' antingen som ett enda tecken 'ï' eller som en kombination av tecknet

'i'
med den kombinerande diaeresen: (U+0069 LATIN SMALL LETTER I+U+0308 KOMBINERANDE DIAERESIS); detta återges också som 'ï'.

Dessa anses vara kanoniskt ekvivalenta enligt Unicode -standarden.

röding

En röding i programmeringsspråket C är en datatyp med storleken på exakt en byte , som i sin tur definieras som tillräckligt stor för att innehålla någon medlem i "grundläggande körningsteckenuppsättning". Det exakta antalet bitar kan kontrolleras via CHAR_BITmakro. Den absolut vanligaste storleken är 8 bitar, och POSIX -standarden kräver att den är 8 bitar. I nyare C-standarder krävs char för att hålla UTF-8- kodenheter som kräver en minsta storlek på 8 bitar.

En Unicode -kodpunkt kan kräva upp till 21 bitar. Detta passar inte in i en tecken på de flesta system, så mer än en används för några av dem, som i variabel längdkodning UTF-8 där varje kodpunkt tar 1 till 4 byte. Dessutom kan ett "tecken" kräva mer än en kodpunkt (till exempel med att kombinera tecken ), beroende på vad som menas med ordet "tecken".

Det faktum att en karaktär historiskt lagrades i en enda byte ledde till att de två termerna ("röding" och "tecken") användes omväxlande i de flesta dokumentationer. Detta gör ofta dokumentationen förvirrande eller vilseledande när multibytkodningar som UTF-8 används och har lett till ineffektiva och felaktiga implementeringar av strängmanipuleringsfunktioner (som att beräkna "längden" på en sträng som ett antal kodenheter snarare än byte). Modern POSIX -dokumentation försöker fixa detta, definierar "tecken" som en sekvens av en eller flera byte som representerar en enda grafisk symbol eller kontrollkod, och försöker använda "byte" när man hänvisar till char -data. Den innehåller dock fortfarande fel som att definiera en array med char som en teckenmatris (snarare än en byte -array ).

Unicode kan också lagras i strängar som består av kodenheter som är större än char . Dessa kallas " breda karaktärer ". Den ursprungliga C -typen kallades wchar_t . På grund av att vissa plattformar definierar wchar_t som 16 bitar och andra som definierar det som 32 bitar, har de senaste versionerna lagt till char16_t , char32_t . Även då objekt som lagras kanske inte är tecken, till exempel lagras variabel längd UTF-16 ofta i matriser på char16_t .

Andra språk har också en typ av röding . Vissa som C ++ använder 8 bitar som C. Andra som Java använder 16 bitar för char för att representera UTF-16-värden.

Se även

Referenser