Tecken och teckenrepresentation Grundläggande databehandling 8 november 2005 Innehåll 1 Teckenrepresentation 2 1.1 Teckenkoder............................. 2 1.2 Att ange teckenkodning...................... 2 1.3 US-ASCII.............................. 2 1.4 Kontrolltecken........................... 3 1.5 ISO-8859-*............................. 4 1.6 Microsoft Windows......................... 5 1.7 ISO 10646 = UCS Unicode................... 6 Vad är olika tecken?........................ 7 Kombinerande tecken........................ 7 Att lagra Unicode i ler...................... 7 1.8 Hos oss............................... 8 1.9 Att hantera ler med olika teckenkodning............ 8 Olika teckenkodningar i Emacs.................. 9 Att konvertera mellan teckenkodningar.............. 9 2 Att skriva tecken 9 2.1... i Emacs............................. 10 1
2 KAPITEL 1. TECKENREPRESENTATION 1 Teckenrepresentation 1.1 Teckenkoder När en textl (plain text) lagras i en dator eller ska föras över mellan datorer måste en viss teckenkodning användas, dvs. ett sätt att ge varje tecken en numerisk kod. Ofta innebär detta att varje tecken lagras i en byte och att koden därför är ett värde från 0 till 255, men för teckenkodningar med många tecken kan det krävas er bytes för ett tecken. 1.2 Att ange teckenkodning Det nns många olika teckenkodningar vilket kan ställa till problem. På samma system (i samma operativsystem; i samma program) använder man oftast samma teckenkodning genomgående och råkar inte ut för några problem. Trycker man på en tangent som det står 'Å' på får man naturligt nog ett tecken 'Å' på skärmen och sparar man det i en l så kommer samma tecken fram nästa gång man tittar på det. Det besvärliga kommer istället när man ska föra över data mellan olika system som använder olika teckenkodningar. Då nns det risk för att den kod man skickar iväg som betyder 'Å' i ens egen system betyder nåt annat på det andra systemet. Det är därför viktigt a) att man använder en teckenkodning som är allmänt känd, och b) att man talar om vilken teckenkodning man har använt. Då får mottagaren(s system) möjlighet att tolka informationen rätt. Oftast fungerar sånt automatiskt. Detta görs med standardiserade beteckningar för olika teckenkodningar, och det är organisationen iana (Internet Assigned Numbers Authority) som håller i dessa beteckningar, precis som de håller i ett antal liknande standarder som används på Internet. Detta används till exempel i datorpost då det i brevhuvudet kan nnas en rad i stil med Content-Type: text/plain; charset=iso-8859-1 som talar om att brevet innehåller ren text kodad med ISO-8859-1. Samma metod används för webben. När en webbläsare ber en webbserver om en sida så skickar webbserver innan den skickar över själva sidan en del särskild information om den, däribland en rad i stil med Content-Type: text/html; charset=utf-8 I detta fall om en html-l kodad i UTF-8. Hur en sådan Content-Typerad ska se ut är denierat i standarden mime (Multipurpose Internet Mail Extensions) som ursprungligen är gjord för datorpost, men som används även till annat. Specikationen charset kan användas till alla mime-typer text/*. 1.3 US-ASCII En traditionell teckenkodning med stor genomslagskraft är ascii (American Standard Code for Information Interchange). Hos iana kan den bland annat
1.4. KONTROLLTECKEN 3 32 33! 34 " 35 # 36 $ 37 % 38 & 39 ' 40 ( 41 ) 42 * 43 + 44, 45-46. 47 / 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63? 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 [ 92 & 93 ] 94 ^ 95 _ 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 { 124 125 } 126 ~ 127 del Figur 1: Ascii-tecken 32127. Kod 32 är mellanslag. Kod 127 är inte ett egentligt tecken utan kontrolltecknet Delete. Även kod 0 till 31 är olika kontrolltecken som inte visas ovan. kallas ASCII eller US-ASCII. (Det nns ofta era iana-namn på samma teckenkodning.) Den omfattar koder från 0 till 127 och visas i gur 1. Ascii är en amerikansk och internationell standard från 1960-talet (dagens version är i praktiken ekvivalent med den från 1968) som snabbt antogs av de esta 1 och fortfarande används ofta. Observera att ascii-koderna går från 0127, medan det i en byte nns plats för dubbelt så många värden (256). Det är därför lätt att göra utökningar av ascii med er tecken och ändå få rum med ett tecken per byte, och det nns också en stor mängd sådana utökningar där även koderna 128255 har fått tecken tilldelade sig. I många fall kan man höra även sådana teckenkodningar kallas för ascii eller extended ascii. Det blir rätt förvirring med teckenkoder om samma namn används om era olika saker så kalla bara ascii för ascii och använd specika namn för de olika utökningar av ascii som nns! 1.4 Kontrolltecken Kontrolltecken är sådana 'tecken' som inte motsvarar något graskt tecken som kan skrivas ut på papper eller på en skärm, utan istället är en kod som har någon särskild annan betydelse när en text lagras i en l, när tecken ska skickas från en terminal till en dator eller från en dator till en terminal eller liknande. I ascii är tecken 031 samt 127 kontrolltecken. Ett exempel är tecken 7, [bel] = Bell, med beskrivningen A control character that is used when there is a need to call for attention; it may control alarm or attention devices. Om man skickar tecken nummer 7 till en terminal så kan den svara med att tuta. Normalt lagrar man inte detta 'tecken' i sina textler. De esta av dessa kontrolltecken används nästan inte alls (längre). Några som har eekten att ytta på markören är bland de mest använda. ˆ 8, [bs] = Backspace: moves the active position one character position backwards on the same line ˆ 9, [ht] = Horizontal tabulation: advances the active position to the next pre-determined character position on the same line (= TAB) ˆ 10, [lf] = Line feed: advances the active position to the same character position of the next line 1 Ett undantag var IBM som länge istället använde sina egna ebcdic-teckenkodningar.
4 KAPITEL 1. TECKENREPRESENTATION ˆ 11, [vt] = Vertical tabulation: advances the active position to the same character position on the next pre-determined line ˆ 12, [ff] = Form feed: advances the active position to the same character position on a pre-determined line of the next form or page ˆ 13, [cr] = Carriage return: moves the active position to the rst character position on the same line I synnerhet tecken 9, 10 och 13 nns ofta i textler. Med beskrivningarna ovan behövs två 'tecken' för att en text ska fortsätta på början av nästa rad: [cr] och [lf]. [cr] (vagnretur) för att börja skriva på början av raden och [lf] (radframmatning) för att gå fram till nästa rad. Konventionellt ges dessa i just den ordningen [cr] + [lf] och kombinationen kallas ibland tillsammans för CRLF. I Unix används dock bara ett tecken, [lf], för att börja på en ny rad. MS Windows använder däremot det traditionella [cr]+[lf] och det brukar även krävas av Internet-protokoll. 2 Dessa skillnader gör att vanliga textler kan skilja sig åt mellan olika system även om man använder samma teckenkodning. (Dessutom är det vanligt att denna ursprungliga nyradskod (oavsett vilken variant man använder) istället används för att indikera nytt stycke.) Kontrolltecknet [ht] ovan kallas oftare för TAB och har en egen tangent på tangentbordet. Ett annat kontrolltecken som har en egen tangent är [esc] (tecken 27) som används till många olika saker. I övrigt kan man skicka kontrolltecken från terminalen genom att använda Ctrl-tangenten. Med Ctrl-A skickar man tecken 1, Ctrl-B ger tecken 2, osv., och i en del sammanhang betecknas dessa tecken med ^A, ^B osv. 1.5 ISO-8859-* Internationella standardiseringsorganisationen iso har denierat en serie standardiserade teckenkodningar ISO 8859-1, ISO 8859-2,... ISO 8859-16 3, och några av dessa, i synnerhet den första, används mycket. Hos iana nns dessa registrerade som ISO-8859-1, ISO-8859-2 osv. De är alla utökningar av ascii, dvs. är ekvivalenta med ascii för kod 0 till 127. Dessutom använder alla tecken 128159 till kontrolltecken 4 och tecken 160 till NBSP = non-breaking space, ett 'hårt' mellanslag där det inte får bli radbrott. Det är alltså bara koderna 161255 som skiljer de olika teckenkodningarna åt. Första halvan av ISO-8859-1 är alltså identisk med US-ASCII och därefter följer en del kontrollkoder. I gur 2 visas det som återstår. ISO 8859-1 är särskilt tänkt för att klara av västeuropeiska språk. De övriga i serien kommer de esta av er förmodligen inte att behöva. De är: ˆ ISO 8859-2 (Latin2) central- och östeuropeiska språk med latinska alfabet (med t. ex. Š, ±, º) 2 I Mac-världen används förr istället endast [cr] för denna funktion, men eftersom Mac OS X är en Unix så använder moderna Mac-datorer också [lf]. 3 Utom ISO 8859-12 som inte nns. 4 Strikt sett nns det en skillnad. ISO-standarderna ISO 8859-1 osv. denierar bara skrivbara tecken och inga kontrolltecken, men i det iana kallar ISO-8859-1 osv. är även ett antal kontrolltecken denierade.
1.6. MICROSOFT WINDOWS 5 160 161 ½ 162 163 164 165 166 167 Ÿ 168 169 170 ª 171 172 173-174 175 176 177 ± 1782 1793 180 181 µ 182 183 184 1851 186 º 187 188 ¼ 189 ½ 190 ¾ 191 ¾ 192 À 193 Á 194 Â 195 Ã 196 Ä 197 Å 198 Æ 199 Ç 200 È 201 É 202 Ê 203 Ë 204 Ì 205 Í 206 Î 207 Ï 208 Ð 209 Ñ 210 Ò 211 Ó 212 Ô 213 Õ 214 Ö 215 216 Ø 217 Ù 218 Ú 219 Û 220 Ü 221 Ý 222 Þ 223 ÿ 224 à 225 á 226 â 227 ã 228 ä 229 å 230 æ 231 ç 232 è 233 é 234 ê 235 ë 236 ì 237 í 238 î 239 ï 240 ð 241 ñ 242 ò 243 ó 244 ô 245 õ 246 ö 247 248 ø 249 ù 250 ú 251 û 252 ü 253 ý 254 þ 255 Figur 2: Tecken 160255 i ISO-8859-1. Tecken 160 är nbsp = non-breaking space. Tecken 173 är shy = soft hyphen en möjlig avstavningspunkt där '-' ska visas om det blir avstavning där, men som annars inte syns. ˆ ISO 8859-3 (Latin3) sydeuropeiska språk ˆ ISO 8859-4 (Latin4) nordeuropeiska språk ˆ ISO 8859-5 kyrilliskt alfabet ˆ ISO 8859-6 arabiskt alfabet ˆ ISO 8859-7 grekiskt alfabet ˆ ISO 8859-8 hebreiskt alfabet ˆ ISO 8859-9 (Latin5) turkiska ˆ ISO 8859-10 (Latin6) nordiska språk ˆ ISO 8859-11 thai ˆ ISO 8859-13 (Latin7) Baltic rim ˆ ISO 8859-14 (Latin8) keltiska språk ˆ ISO 8859-15 (Latin9) en revidering av Latin1 ˆ ISO 8859-16 (Latin10) sydösteuropeiska språk Observera att de som är till för latinskt alfabet även kallas Latin sira, i synnerhet är Latin1 = ISO-8859-1. Observera även att eftersom alla dessa innehåller hela ascii så nns sådant som de latinska bokstäverna AZ även i de teckenkodningar som framförallt är till för helt andra alfabeten. 1.6 Microsoft Windows Microsoft använder en del egna utökningar av ISO-8859-familjen. Den viktigaste av dessa är windows-1252 som bygger på ISO 8859-1. Den innehåller alla skrivtecken som ISO-8859-1 gör, men ersätter en del av kontrolltecknen 128159 med ytterligare skrivbara tecken, t. ex.,,, º och Den kallas ibland även för WinLatin1, men windows-1252 är det enda namn för denna teckenkodning som Microsoft har registrerat hos iana. I MS Windows-världen kallas denna teckenkodning märkligt nog ibland ANSI (såsom den amerikanska standardiseringsorganisationen American National Standards Institute), trots att det inte är någon ansi-standard! Eftersom den liknar ISO-8859-1 så mycket nns det risk för sammanblandning. Ibland sprids dokument från MS Windows-världen med felaktiga etiketter som påstår att texterna är skrivna med ISO-8859-1 fast det egentligen är windows-1252.
6 KAPITEL 1. TECKENREPRESENTATION 1.7 ISO 10646 = UCS Unicode Om man vill använda t. ex. såväl hebreiska som ryska tecken i samma l så duger inte någon av ovannämnda teckenkodningar. Det nns andra språk som ingen av dessa duger till, eftersom ISO-8859- serien bara är till för språk med alfabetiska skriftsystem. Där nns t. ex. inte stavelsetecken som hangul för koreanska eller hiragana och katakana för japanska, och framförallt nns där inte ideograska tecken. Det nns tusentals ideograska han-tecken för kinesiska, japanska och koreanska. Dessutom nns inga tidigare skriftsystem som runor och hieroglyfer med. Numer så används teckenkodningen Unicode allt mer, med vilken det är tänkt att man ska kunna beteckna alla naturliga språk (levande och döda), samt dessutom en stor mängd matematiska och andra symboler. Egentligen ns det två olika projekt: Det ena är en standard från standardiseringsorganisationen iso: ucs = Universal Character Set, eller ISO 10646. Det andra är Unicode från ett konsortium av datorföretag. De båda standarderna har dock anpassat sig till varandra, så i de esta bemärkelser är det numer samma sak och det är Unicode som det oftast talas om. Nuvarande versionen Unicode 4.1 har >97 000 koder (däribland över 70 000 ideograska tecken) Standarden utökas allteftersom med nya tecken. (I version 4.1 tillkom t. ex. fornpersiska och koptiska tecken.) Det nns plats för drygt en miljon tecken. (Den högsta tillåtna koden är 1 114 111.) Förutom den numeriska koden innehåller Unicode även bland annat ˆ Ett namn för varje tecken (som latin capital letter a with ring above, arabic question mark och oriya digit seven) ˆ Information om vad för slags tecken de olika tecknen är (alfabetiska, siror, interpunktion,... ) ˆ Information om vilka tecken som skrivs från höger till vänster och vilka som skrivs från vänster till höger ˆ Information om vilka tecken som motsvarar varandra som små och stora bokstäver Tecknen är indelade i 17 plan med plats för 65 536 tecken i varje. Planen är numrerade från 0 till 16. ˆ Plan 0 = BMP = Basic Multilingual Plane. Här ligger de vanligaste tecknen. Koderna 0255 är som för ISO-8859-1 (så 0127 är som för ascii). Sen följer bokstäver, stavelsetecken och ideograska tecken, samt diverse symboler. Den största delen är ideograska tecken och det nns även ett block med några tusen tecken som är reserverade för privat användning. ˆ Plan 1, SMP = Supplementary Multilingual Plane. Här nns diverse tecken som används mindre ofta, bland annat utdöda skriftsystem som linear B, hieroglyfer, m. m. ˆ Plan 2, SIP = Supplementary Ideographic Plane. Ytterligare ideograska han-tecken. ˆ Plan 313 används ej än så länge. ˆ Plan 14, SSP = Supplementary Special-purpose Plane. ˆ Plan 15 och 16 för privat användning.
1.7. ISO 10646 = UCS UNICODE 7 (Från början skulle ISO 10646 innehålla 32 768 olika plan, medan Unicodekonsortiet tänkte sig att det skulle räcka med ett plan. Kompromissen på halva vägen blev 17 plan.) Vad är olika tecken? Det är inte i första hand det graska utseendet som avgör vad som ska räknas som varianter av samma tecken eller som ska räknas som olika tecken. T. ex. är 'a' och 'a' samma tecken (tecken 97: latin small letter a) trots att de ser olika ut. Däremot är svenska A och grekiska A olika tecken (tecken 65: latin capital letter a respektive tecken 913: greek capital letter alpha) trots att de (beroende på typsnitt) kan se likadana ut. (Att de är olika märks om inte annat på motsvarande gemena bokstäver a och α.) Samma tecken kan också se olika ut i olika positioner i texten. Ett f följt av ett i blir t. ex. ofta en sammanhängande ligatur (se på nära håll!), men det räknas ändå som två olika tecken. Många arabiska tecken har olika former beroende på om de kommer i början, mitten eller slutet av ett ord. Termen glyf används ibland för ett specikt graskt utseende, till skillnad från den mer abstrakta termen tecken. Kombinerande tecken I Unicode nns kombinerande tecken som kombineras med föregående tecken, genom att ge det en accent. Exempel: ˆ a +. = ạ ˆ a + = a ˆ a + + = á Dessutom nns det en del färdiga hopsatta tecken. För att lagra ä kan man använda tecken nummer 228 (latin small letter a with diaeresis) eller två tecken efter varann: ˆ tecken 97 (latin small letter a) ˆ tecken 776 (combining diaeresis) Tecknen får kombineras hursomhelst, så det går att med Unicode skriva t. ex.. som tecken 8240 (per mille sign) följt av tecken 803 (combining dot below). Att lagra Unicode i ler Eftersom det nns er än 256 tecken krävs det era bytes per tecken. Detta är ett skäl till att Unicode är mer besvärligt att hantera än t. ex. ascii och ISO 8859-1. För att spara utrymme så lagrar man ofta Unicode-text på ett sådant sätt så att olika tecken tar olika mycket plats att lagra. Några av sätten att lagra Unicode-text är följande: ˆ UTF-32 fyra bytes per tecken ˆ UTF-16 två bytes per tecken för BMP, fyra annars ˆ UTF-8 en byte per tecken för ascii, två till fyra för övriga
8 KAPITEL 1. TECKENREPRESENTATION UTF-16 Från början tänkte sig Unicode att det skulle räcka med ett plan, och då skulle det räcka med två bytes för varje tecken. Med UTF-16 använder man två bytes för varje tecken i BMP. Tricket som gör att detta är möjligt är att en viss mängd koder (55 29657 343, totalt 2 048 olika koder) inte används till några tecken utan är reserverade för detta ändamål. När man behöver ett tecken från något av de 16 andra planen kombinerar man två av dessa reserverade koder efter varann, varför man kan koda dessa mer ovanliga tecken med fyra bytes. UTF-8 Här har man tagit idén att koda de vanligare tecknen kortare ännu längre: ˆ Kod 0127: 1 byte (ascii) ˆ Kod 1282 047: 2 bytes ˆ Kod 2 04865 535: 3 bytes ˆ Kod 65 5361 114 111: 4 bytes (utanför BMP) Om en l bara innehåller ascii-tecken (kod 0127) så blir det alltså precis likadant med US-ASCII som med UTF-8. Endast koderna 128255 används i erbyteskombinationerna, så varje förekomst av t. ex. kod 65 i ens l är samma ascii-tecken (A). Nyare internet-protokoll ska kunna använda UTF-8. Om man ser text som ser ut sã hã r så är det på grund av trassel med teckenkodning. Så ser UTF-8-text ut om den tolkas som ISO-8859-1. Observera att bokstäverna az ser likadana ut (de ingår ju i ascii) medan åäö lagras i två bytes med UTF-8 och dessa två bytes har här felaktigt tolkats som något helt annat. 1.8 Hos oss På STP-datorerna används fortfarande ISO-8859-1 som normal teckenuppsättning. Den teckenkodning man föredrar nns med i ens locale-inställningar, och man kan t. ex. ha (LANG=en_US.ISO8859-1). 1.9 Att hantera ler med olika teckenkodning I vissa slags ler kan det stå inne i len vilken teckenkodning den använder. T. ex. kan xml-ler ha en rad i stil med <?xml version="1.0" encoding="utf-8"?> i början. Då bör program som kan hantera xml-ler ta hänsyn till detta. Men observera att det i allmänhet inte nns lagrat någonstans vilken teckenkodning en viss l använder. En l med två bytes, 241 och 214, kanske är en ISO-8859-1-l med texten ñö, eller kanske en ISO-8859-7-l med texten ρφ eller kanske en ISO-8859-5-l med texten ж 5 eller något helt annat! Normalt så håller man sig till en teckenkodning, men när man inte gör det får man själv lov att hålla rätt på detta! 5 Vilket betyder igelkott på ryska!
9 Olika teckenkodningar i Emacs Emacs använder en egen teckenkodning internt och kan läsa och skriva ler med era olika teckenkodningar. Alla buertar i Emacs får innehålla vilka tecken som helst som Emacs kan hantera. Det är först när man försöker spara en l som det krävs att alla tecken i buerten nns med i den teckenkodning som man ska spara len med. Om det inte är så talar Emacs om detta och låter en välja en annan teckenkodning. Man kan också tala om explicit vilken teckenkodning man vill använda innan man sparar genom att använda C-x RET f. Till vänster i moderaden anger Emacs vilken teckenkodning som i första hand ska användas när en viss buert sparas till l (1 = ISO-8859-1, u = Unicode,... ). Om Emacs inte gissar rätt själv på vilken teckenkodning en viss l har kan man ange teckenkodning explicit precis innan man öppnar len. Det gör man med C-x RET c som anger vilken teckenkodning Emacs ska använda för det kommando som följer omedelbart efteråt. Dessa kommandon och mer nns i menyn Options Mule (Multilingual environment). Att konvertera mellan teckenkodningar Ett program som konverterar mellan teckenkodningar är recode (dokumenterat i Info). Man kan både använda recode för att ändra teckenkodning för en l och som ett lter som skickar vidare någonting till standard output som är kodat på ett annat sätt än det som kom in på standard input. 2 Att skriva tecken På tangentborden i datorsalarna fungerar en del tangenter som döda tangenter (modierartangenter) för diakritiska tecken som till ë, é, è, ê och ñ. Man trycker först på den döda tangenten och sen på bokstaven. Det innebär att för att skriva ` ~ som självständiga tecken får man lov att trycka på mellanslag efter en av dessa döda tangenter. (De övriga tecknen som man får med mellanrum efter en modierartangent är lätta att skriva ändå.) AltGr (= Alternate Graphic kan kombineras med en mängd tangenter för att ge andra tecken. Många av dessa står till höger på den tangent det gäller, men det nns andra också, som t. ex. µ på AltGr + m. Tangenten med en menysymbol till vänster om den högra Ctrl-tangenten används hos oss som kombinationstangent. Den kallas Multi_key eller Compose. Genom att först trycka på den och sen på två andra tangenter efter varann kan man producera ytterligare tecken. Följd av ae ger den æ; följd av c, ger den ç; osv. Det går ofta att gissa vilka tecken man ska kombinera. I era fall får man något som kan ses som en variant av ett visst tecken genom att kombinera det med sig självt. Med kombinationstangenten, x, x får man t. ex. multiplikationstecknet.
10 KAPITEL 2. ATT SKRIVA TECKEN 2.1... i Emacs Om man vill skriva helt andra tecken i Emacs, som t. ex. ryska eller kinesiska tecken så behöver man en särskild inputmetod. Annars behöver man inte detta. En inputmetod är något som denierar vilka tecken som genereras när man trycker på vissa tangenter. Funktionen Select Input Method nns i menyn Options Mule (Multilingual environment) och där nner man även ett kommando för att beskriva en viss inputmetod (C-h I). Det nns olika slags inputmetoder. T. ex.: ˆ Prex- och postxmetoder där man framförallt kan skriva bokstäver med accenter genom att skriva något särskilt före respektive efter bokstaven. Inputmetoden german-prefix är t. ex. till för att skriva tyska även om man inte har ett tyskt tangentbord och gör därför så att "A genererar Ä men även så att "s genererar ÿ. ˆ Metoder som bygger på tangentbordslayouter. Om man t. ex. är van vid att skriva på ett ryskt tangentbord kan man använda inputmetoden cyrillic-jcuken där tangenterna genererar det kyrilliska tecken som tangenten på motsvarande position gör på ett ryskt tangentbord. ˆ Metoder som bygger på translitterering. Med cyrillic-translit trycker man t. ex. på tangenterna Shostakovich för att skriva Xostakoviq. 6 ˆ För att skriva ideogram, t. ex. kinesiska, nns det dels inputmetoder där man först anger ordets fonetik, dels sådana där man först anger några av delarna i det graska tecknet. I båda fallen nns det i allmänhet era möjliga tecken som kan passa in. Man får upp en lista över sådana från vilken man får välja. 6 Detta följer en engelsk translitterering. En svensk translitterering skulle snarare lyda Sjostakovitj.