10/10

RA: N03: UTF-8

Avtor: Ali Gator | 27 March 2010 | Ni ni komentarjev
Kategorija: RA

Navodilo:

Napišite program (npr. v C++), ki bo kodiral in dekodiral znake abecede Unicode v kodiranju UTF-8.

Znakov iz Unicode, ki jih UTF-8 kodira, je 1114111, tj. 10FFFF (hex), oz. max. 128 bitov. Pri tem kodi 0xFF in 0xFE nista dovoljeni in ob dekodiranju takšne kode izpišite opozorilo o napaki.

Predstavitev UTF-8 kode:
1) V kolikor je prvi bit 0, sledi sedem bitov za kodo (tj. enako prvim 128 kodam iz ASCII).
2) V kolikor je prvi bit 1, pomeni število vodilnih bitov 1 do prvega bita 0, dolžino kode v bajtih. Nato se kodirajo bolj obteženi biti kode, šele nato manj obteženi del, po spodnji tabeli:

Unicode Bajt 1 Bajt 2 Bajt 3 Bajt 4 Primer
U+0000–U+007F 0xxxxxxx ‘$’ U+0024
00100100
0x24
U+0080–U+07FF 110yyyxx 10xxxxxx ‘¢’ U+00A2
11000010,10100010
0xC2,0xA2
U+0800–U+FFFF 1110yyyy 10yyyyxx 10xxxxxx ‘€’ U+20AC
11100010,10000010,10101100
0xE2,0x82,0xAC
U+10000–U+10FFFF 11110zzz 10zzyyyy 10yyyyxx 10xxxxxx U+024B62
11110000,10100100,10101101,10100010
0xF0,0xA4,0xAD,0xA2

PRIMER (vnos črke v desetiškem številskem sestavu, izpis kode v binarnem)

Kodiranje
Vpišite Unicode znak: 65
UTF-8 koda Unicode je: 01000001

Dekodiranje
Vpišite UFT-8 kodo: 01000001
Koda predstavlja znak št.: 65

>> Poglej rešitev <<


Arhiv

Oblak

 

rss

Vsevedno okno

Kategorije

Nekaj za preživetje:

Blogroll