Przejdź do zawartości

Unicode

Z Wikipedii, wolnej encyklopedii
Logo Unikodu

Unicode(formalnieUnicode Standard[1],pol. Unikod) – komputerowystandardkodowaniazestawu znakówobejmującego litery większości używanych na świeciepism,a także symboli,emojiikodów formatowania.Standard Unicode rozwijany jest przezkonsorcjumUnicode, składające się z firm wytwarzającychsprzęt komputerowy,producentówoprogramowaniaoraz instytutów naukowych, agencji międzynarodowych i grup użytkowników[2].Konsorcjum współpracuje z organizacjąISO.

W odróżnieniu od standardów takich jakISO 10646,oprócz kodowania znaków publikacje konsorcjum Unicode dostarczają również wiele szczegółów osystemach pismai sposobie ich wyświetlania: reguły normalizacji, dekompozycji,kolacjonowania,renderowaniai dwukierunkowej kolejności wyświetlania dla tekstów wielojęzycznych. Zawierają również referencyjne pliki danych i wykresy wizualne, które pomagają deweloperom poprawnie zaimplementować standard Unicode[3].

Architektura

[edytuj|edytuj kod]

Standard Unicode definiuje przestrzeń kodową (ang.codespace), która jest zbiorem wartości numerycznych (ang.code points) od 0 do 10FFFF wsystemie szesnastkowym[4].Wszystkie znaki Unicode zostają przypisane do jednej z wartości numerycznych przestrzeni kodowej i nazwane według wzoru U+0000, gdzie 0000 jest wartością numeryczną znaku[5].Zapis wartości w tym systemie musi zawierać co najmniej cztery cyfry – gdy wartość numeryczna znaku jest mniejsza, na jej początek zostają przypisane zera[6].Przykładowo, znak dzielenia posiada wartość numeryczną F7 i jest zapisywany jako U+00F7, natomiast znak jednego zegipskich hieroglifówo wartości numerycznej 13254 zostaje zapisany bez żadnych modyfikacji jako U+13254.

Metody kodowania

[edytuj|edytuj kod]

Istnieje kilka metod zapisywania wartości numerycznych znaków Unicode jako ichbajtoweodpowiedniki wsystemach komputerowych.Rozróżnia się między systemami mapowaniaUCS(Universal Character Set) i UTF (Unicode Transformation Format), które dzielą się na podgrupy zależne od ilości bajtów potrzebnej do zapisania jednego znaku[7].

Do najpowszechniejszych metod bajtowego kodowania znaków należą:

Mniej popularnymi kodowaniami Unicode są:

Istnieją również inne kodowania, stanowiące margines lub pozostające na etapie propozycji, na przykład:

Kompatybilność

[edytuj|edytuj kod]

Standard Unicode zsynchronizowany jest ze standardemISO 10646,stosując te same wartości numeryczne dla poszczególnych znaków. Zapis binarny tekstuASCIIjest również kompatybilny z metodą zapisu znaków UnicodeUTF-8[8].

Nazewnictwo

[edytuj|edytuj kod]

Według ogłoszonej w 2005 roku wypowiedziAndrzeja Blikle,członkaRady Języka Polskiegona stanowisku przewodniczącego Zespołu Terminologii Informatycznej[9],sugeruje się używanie nazwy Unikod nie tylko jako określenie stworzonego przez konsorcjum Unicode standardu, ale również wszystkich pozostałych systemów unifikacji liter[10].Stosując taką definicję, Unikodem byłby również między innymi standardISO 10646.Proponowana terminologia nie upowszechniła się jednak w sposób prawidłowy i słowo Unikod najczęściej służy jako spolszczenie słowa Unicode, a nie odrębne pojęcie w dziedzinie informatyki[11][12][13],prawdopodobnie przez podobieństwo obu nazw. Również sama strona internetowa konsorcjum Unicode używa Unikodu jako polskiego tłumaczenia Unicode[12],co w 2017 roku spotkało się z krytykąJanusza S. Bienia[14].Słowo Unikod nie znajduje się wEncyklopedii PWN,w przeciwieństwie do słowa Unicode[15].Ponieważ pierwotna wypowiedź Andrzeja Blikle stanowiła zaledwie zalecenie[10],dokładna definicja słowa Unikod pozostaje niejasna.

Powszechność

[edytuj|edytuj kod]

Standard Unicode jest dominującym systemem kodowania znaków, aUTF-8jego najpowszechniejszą implementacją, używany wewnętrznie wsystemach operacyjnychtakich jakUnix,WindowsczymacOS.W roku 2020 używało go około 98% stron internetowych[16].

Historia standardu

[edytuj|edytuj kod]
  • 1991 Unicode 1.0.0 (październik[17])
  • 1993 Unicode 1.1.0 (czerwiec[17])
  • 1996 Unicode 2.0.0 (lipiec[17])
  • 1998 Unicode 2.1.2 (maj[17])
  • 1998 Unicode 2.1.5 (sierpień[17])
  • 1998 Unicode 2.1.8 (grudzień[17])
  • 1999 Unicode 2.1.9 (kwiecień[17])
  • 1999 Unicode 3.0.0 (wrzesień[17])
  • 2000 Unicode 3.0.1 (sierpień[17])
  • 2001 Unicode 3.1.0 (23 marca)
  • 2001 Unicode 3.1.1 (sierpień[17])
  • 2002 Unicode 3.2.0 (25 marca)
  • 2003 Unicode 4.0.0 (17 kwietnia)
  • 2004 Unicode 4.0.1 (marzec[17])
  • 2005 Unicode 4.1.0 (31 marca[17])
  • 2006 Unicode 5.0.0 (4 lipca[17]) (ogłoszenie prasowe: 18 lipca)
  • 2008 Unicode 5.1.0 (15 marca) (ogłoszenie prasowe: 4 kwietnia[18])
  • 2009 Unicode 5.2.0 (1 października[17])
  • 2010 Unicode 6.0.0 (11 października[17]), m. in. start standaryzacjiemoji
  • 2012 Unicode 6.1.0 (31 stycznia[17])
  • 2012 Unicode 6.2.0 (26 września[17])
  • 2013 Unicode 6.3.0 (30 września[17])
  • 2014 Unicode 7.0 (16 czerwca)
  • 2015 Unicode 8.0 (17 czerwca)
  • 2016 Unicode 9.0 (czerwiec)
  • 2017 Unicode 10.0 (czerwiec)
  • 2018 Unicode 11.0 (czerwiec)
  • 2019 Unicode 12.0 (5 marca)
  • 2019 Unicode 12.1 (7 maja[17][19])
  • 2020 Unicode 13.0 (10 marca[17][20])
  • 2021 Unicode 14.0 (wrzesień)[21]

Relacje do UCS

[edytuj|edytuj kod]
  • Unicode 1.1 ISO/IEC ≈ 10646-1:1993
  • Unicode 3.0 ISO/IEC ≈ 10646-1:2000
  • Unicode 3.2 ISO/IEC ≈ 10646-2:2001
  • Unicode 4.0 ISO/IEC ≈ 10646:2003
  • Unicode 5.0 ISO/IEC ≈ 10646:2003/Amd.2:2006
  • Unicode 5.1 ISO/IEC ≈ 10646:2003/Amd.4:2008
  • Unicode 5.2 ISO/IEC ≈ 10646:2003/Amd.6:2009
  • Unicode 6.0 ISO/IEC ≈ 10646:2010
  • Unicode 6.1 ISO/IEC ≈ 10646:2012

Wstawianie znaków Unicode

[edytuj|edytuj kod]

Klawiatura komputerowaudostępnia tylko znaki zestrony kodowejwłaściwej dla ustawionego języka klawiatury. W przypadku polskiej klawiatury będzie to strona kodowaCP852iWindows-1250(kodowanie polskich znaków). Wszystkie znaki z tych stron można wprowadzić za pomocąalt-kodów.Do wprowadzania znaków niedostępnych przez alt-kody można użyć jednej z poniższych metod:

  • W systemie Windows NT, Mac OS X (od wersji10.2) oraz w licznych dystrybucjach Linuksa (ze środowiskiem graficznym) dostępna jest tablica znaków, w której można wyszukać potrzebny znak, skopiować go do schowka, a następnie wkleić w program. W systemach Windows 95, 98 i ME tablica znaków nie daje dostępu do wszystkich znaków Unicode.
  • Znając numer pozycji znaku (czy to dziesiętny, czy to szesnastkowy), można wprowadzić ten znak na kilka sposobów (nie wszystkie programy obsługują wszystkie opisane tu sposoby):
    • Trzymając naciśnięty (lewy)Alti wpisując z klawiatury numerycznej numer dziesiętny tego znaku, po czym zwolnić klawiszAlt[22].
    • Wpisać numer szesnastkowy tego znaku, a następnie wcisnąć kombinację (lewy)Alt+X[22].Przed numerem szesnastkowym nie może być cyfra ani litera z zakresuaf(gdyż zostaną uznane jako część kodu, ewentualnie należy poprzedzić kod np. spacją lub uzupełnić kod wiodącymi zerami, tak by liczył dokładnie sześć pozycji).
    • Trzymając naciśnięty (lewy)Alt,nacisnąć klawisz plus z klawiatury numerycznej, wpisać numer szesnastkowy znaku, po czym zwolnić klawiszAlt.Metoda ta działa w systemieWindows XPi nowszych.
    • Trzymając naciśnięte klawiszeCtrl+⇧ Shift,wpisać numer szesnastkowy znaku, a następnie puścić klawisze. Metoda ta działa w środowiskuGNOME.Od wersjiGTK+2.10 należy nacisnąćCtrl+⇧ Shift+U,wprowadzić kod szesnastkowy znaku, nacisnąć↵ Enter[22].

Istnieją też programy do tworzenia własnych układów klawiatur (np. Microsoft Keyboard Layout Creator), dzięki nim można podpiąć dowolny znak Unicode pod dowolną kombinację klawiszy (najczęściej wykorzystywana jest kombinacjaAltGr+klawisz,gdzie AltGr to prawy klawiszAlt). Niektóre programy dla Windows pozwalają jedynie na wprowadzanie z klawiatury znaków istniejących wstronie kodowejwłaściwej dla języka klawiatury, np. w przypadku polskiego systemu Windows próba wpisania kombinacjąAltGr+klawiszznaku nieistniejącego w stronie kodowejWindows-1250nie da oczekiwanego efektu.

Zobacz też

[edytuj|edytuj kod]

Przypisy

[edytuj|edytuj kod]
  1. Unicode Standard[online], unicode.org[dostęp 2022-03-25].
  2. Diana,Members[online], Unicode[dostęp 2022-03-25](ang.).
  3. Technical Introduction[online], www.unicode.org[dostęp 2022-03-25].
  4. Glossary[online], unicode.org[dostęp 2022-03-25].
  5. Introduction to Unicode[online], mathias.gaunard.com[dostęp 2022-03-25].
  6. Unicode Mail List Archive: Re: Origin of the U+nnnn notation[online], unicode.org[dostęp 2022-03-25].
  7. FAQ – UTF-8, UTF-16, UTF-32 & BOM[online], unicode.org[dostęp 2022-03-25].
  8. HTML UTF-8 Reference[online], www.w3schools.com[dostęp 2022-03-25](ang.).
  9. Skład osobowy[online], web.archive.org, 13 sierpnia 2019[dostęp 2022-03-25][zarchiwizowane zadresu2019-08-13].
  10. abUnicode, unikod[online], rjp.pan.pl[dostęp 2022-03-25].
  11. Ogonki w Unikodzie[online], www.unikod.pl[dostęp 2022-03-25].
  12. abWhat is Unicode? in Polish[online], unicode.org[dostęp 2022-03-25].
  13. [ Domeny – IDN ] Czym jest Unikod?[online], dawne.az.pl[dostęp 2022-03-25].
  14. Re: Unicode vs. Unikod from Martin J. Dürst via Unicode on 2017-04-11 (Unicode Mail List Archive)[online], unicode.org[dostęp 2022-03-25].
  15. Unicode,[w:]Encyklopedia PWN[online], Wydawnictwo Naukowe PWN[dostęp 2022-03-25].
  16. Usage Survey of Character Encodings broken down by Ranking[online], w3techs.com[dostęp 2022-03-25].
  17. abcdefghijklmnopqrstDaty publikacji poszczególnych wydań.
  18. wydanie wersji 5.1.0 standardu.
  19. Unicode 12.1.0[online], unicode.org[dostęp 2019-08-02].
  20. Unicode 13.0.0[online], unicode.org[dostęp 2020-05-22].
  21. Unicode 14.0.0[online], unicode.org[dostęp 2024-04-26](ang.).
  22. abcHow to Input Unicode[online], xahlee.info[dostęp 2020-03-18][zarchiwizowane zadresu2019-09-14].

Linki zewnętrzne

[edytuj|edytuj kod]