Unicode to standard komputerowy, który umożliwia wymianę tekstów w różnych językach na poziomie globalnym. Jest rozwijany przez Konsorcjum Unicode , którego celem jest zakodowanie tekstu pisanego poprzez nadanie dowolnemu znakowi w dowolnym systemie pisma nazwy i identyfikatora numerycznego, w ujednolicony sposób, niezależnie od platformy komputerowej czy używanego oprogramowania .
Norma ta jest powiązana z normą ISO/IEC 10646, która opisuje tabelę znaków równoważnych. Najnowsza wersja, Unicode 13.0 , została wydana wmarzec 2020.
W pełni kompatybilny z Universal Character Set (UIC) ISO / IEC 10646 , standard Unicode rozszerza go, dodając kompletny model reprezentacji i przetwarzania tekstu, nadając każdemu znakowi zestaw właściwości (które mogą być albo dla niektórych ustandaryzowane i ustabilizowane w wszystkie wersje Unicode, w których znak został zakodowany, lub informacyjne z tylko zaleceniem ich użycia, które mogą ewoluować zgodnie z wykrytymi nowymi potrzebami). Własności te precyzyjnie opisują relacje semantyczne, jakie mogą zachodzić między kilkoma kolejnymi znakami tekstu i pozwalają na standaryzację lub rekomendację algorytmów przetwarzania, które w jak największym stopniu zachowują semantykę przekształcanych tekstów. Unicode ma na celu uczynienie tego samego tekstu użytecznym identycznie w zupełnie różnych systemach komputerowych.
Standard Unicode składa się z repertuaru 143 859 znaków, obejmującego ponad 150 skryptów, zestawu tabel kodów do celów wizualnych, metody kodowania i kilku standardowych kodowań znaków, właściwości znaków wyliczenia (wielkie, małe litery, APL , symbole, interpunkcja , itd. ) z zestawu plików danych komputerowych odniesienia oraz szereg elementów powiązanych, takich jak zasady normalizacji rozkładu dwukierunkowego, sortowanie, renderowania i kolejność wyświetlania (do poprawnego wyświetlania tekstu zawierającego zarówno od prawej do lewej, znaki pisma, takie jak arabski i hebrajski oraz od lewej do prawej).
W praktyce Unicode w pełni zawiera ISO / IEC 10646 , ponieważ ta ostatnia standaryzuje tylko poszczególne znaki, przypisując im nazwę i numer normatywny (zwany punktem kodowym ) oraz bardzo ograniczony opis informacyjny, ale bez przetwarzania lub specyfikacji. używać w pisaniu prawdziwych języków, które precyzyjnie definiuje tylko standard Unicode. ISO / IEC 10646 jest normatywnym odniesienie do części standardu unikodową (włącznie z dwukierunkowych algorytmu i charakter właściwości (w) ); Unicode jest również de facto standardem przetwarzania tekstu i służy jako podstawa wielu innych standardów.
Języki pisane:
[L] egograficzny i [S] illabic
Abjad (języki semickie)
Unicode, którego pierwsza publikacja sięga Październik 1991został opracowany w celu zastąpienia stosowania krajowych stron kodowych .
Te strony kodowe miały w przeszłości pewne problemy. Na przykład na terminalach 3270 działających w EBCDIC : gdy notatka elektroniczna zawiera znak „znaku waluty”, ten sam tekst ograniczający wydatki w dolarach dla amerykańskiego czytelnika wyświetlałby na brytyjskim ekranie tę samą kwotę w funtach szterlingach , ponieważ waluta znak był inny w każdym z dwóch krajów.
W praktyce wszystkie systemy pisma nie są jeszcze obecne, ponieważ dokumentalna praca badawcza ze specjalistami nadal może okazać się konieczna w przypadku rzadkich postaci lub mało znanych systemów pisma (ponieważ np. zanikły).
Przedstawione są jednak najczęściej używane na świecie skrypty, a także zasady semantyki postaci , ich kompozycji i sposobu łączenia tych różnych systemów. - Na przykład, jak wstawić system pisania od prawej do lewej do systemu pisania od lewej do prawej ( tekst dwukierunkowy ).
W formie UTF-8 Unicode oferuje pewną interoperacyjność z kodem ASCII .
Standard Unicode określa wymagania dotyczące oceny zgodności implementacji procesu (lub oprogramowania) z Unicode . Wymagania te dotyczą w szczególności (w wersji 4.0 ):
Te wymagania umożliwiają obsługę podzbioru Unicode.
Podczas gdy ISO / IEC 10646 definiuje ten sam zestaw znaków co Unicode, różnica między ISO / IEC 10646 a Unicode wynika głównie z wymogu zgodności zapewnianego przez Unicode.
Unicode jest w 2016 roku wiodącym standardem kodowania znaków komputerowych. Służy do współdziałania oprogramowania i umożliwia na przykład kopiowanie tekstów przy użyciu znaków różnych alfabetów między różnymi programami, nawet nie zaprojektowanymi specjalnie dla nich (na przykład program ze znakami APL w tekście LibreOffice lub w wiadomości e-mail w Gmailu ). Jednak nie wszystkie teksty Unicode są zakodowane tak samo. W zależności od przyjętej standaryzacji Unicode , ten sam znak graficzny może być czasami zakodowany na różne sposoby. Niektóre teksty używać NFC konwencję , podsłuchu NFD konwencji , etc. A norma nie zabrania mieszania kilku konwencji w tym samym tekście. To samo dotyczy oprogramowania.
To współistnienie kilku sposobów pisania tego samego zostało wykorzystane przez hakerów w 2000 roku , umożliwiając im ominięcie filtrów: hakerzy ominęli zakazy niektórych ciągów znaków uważanych za niebezpieczne, po prostu poprzez zakodowanie ich w innej formie, bardziej niezwykłej i dlatego czasami niefiltrowanej.
Unicode odpowiada na te ograniczenia, udostępniając pojęcie równoważności kanonicznej .
Praca nad Unicode jest równoległa i zsynchronizowana z pracą w standardzie ISO/IEC 10646, którego cele są takie same. ISO / IEC 10646 , międzynarodowy standard opublikowany w języku francuskim i angielskim, który nie określa zasad kompozycji znaków lub semantycznych właściwości znaków.
Unicode rozwiązuje jednak kwestię wielkości liter , kolejności alfabetycznej oraz kombinacji akcentów i znaków . Od wersji 1.1 Unicode i we wszystkich kolejnych wersjach, znaki mają takie same identyfikatory jak te w standardzie ISO/IEC 10646 : katalogi są utrzymywane równolegle, identyczne podczas ich ostatecznej standaryzacji, przy czym oba standardy są aktualizowane prawie jednocześnie. Dwa standardy Unicode (od wersji 1.1 ) i ISO/IEC 10646 zapewniają pełną kompatybilność wsteczną: każdy tekst, który jest zgodny z wcześniejszą wersją, musi pozostać zgodny w późniejszych wersjach.
Tak więc znaki Unicode w wersji 3.0 są zgodne ze standardem ISO/IEC 10646:2000 . Wersja 3.2 Unicode rankingu 95,221 znaków, symboli i wskazówki.
Wersja 4.1 Unicode, zaktualizowanelistopad 2005, zawiera :
czyli łącznie prawie 245 000 punktów kodowych przypisanych w przestrzeni, która może zawierać 1 114 112 różnych kodów.
Wydaje się jednak, że istnieją pewne problemy z kodowaniem znaków chińskich , ze względu na ujednolicenie zestawów ideograficznych używanych w różnych językach, z nieco inną, a czasem sensowną kaligrafią, ale rozwiązuje je Unicode, który ma zdefiniowane selektory. otworzył standardowy rejestr sekwencji, który ich używa.
Wersja | Data publikacji | Nowe postacie |
---|---|---|
1.0.0 | Październik 1991 | |
1.0.1 | Czerwiec 1992 | |
1,1 | Czerwiec 1993 | |
2,0 | Lipiec 1996 | |
2,1 | maj 1998 | |
3,0 | wrzesień 1999 | |
3.1 | Marzec 2001 | |
3.2 | Marzec 2002 | |
4.0 | kwiecień 2003 | |
4.1 | Marzec 2005 | |
5.0 | lipiec 2006 | |
5.1 | Marzec 2008 | |
5.2 | październik 2009 | |
6,0 | luty 2011 | |
6,1 | 31 stycznia 2012 | |
7,0 | 16 czerwca 2014 | 2834 nowych znaków, w tym emotikony . |
8,0 | 17 czerwca 2015 | 7716 znaków, w tym wiele emotikonów. |
9,0 | 21 czerwca 2016 | 7500 nowych postaci (w tym 72 emotikony). |
10,0 | 20 czerwca 2017 r. | 8518 nowych znaków (w tym 56 emotikonów). |
11,0 | 5 czerwca 2018 r. | 684 nowe postacie (w tym 66 emotikonów). |
12,0 | 5 marca 2019 r. | 554 nowe postacie. |
13,0 | 10 marca 2020 r. | 5390 nowych postaci |
Unikodowy określono według wzoru warstwowego ( nocie technicznej Unicode n O 17 ). Inne standardy zazwyczaj nie rozróżniały zestawu znaków i reprezentacji fizycznej. Warstwy są tu prezentowane zaczynając od najwyższej (najdalej od maszyny).
Katalog postaci abstrakcyjnych ( repertuar znaków abstrakcyjnych )Najwyższą warstwą jest definicja zestawu znaków. Na przykład Latin-1 ma zestaw 256 znaków, podczas gdy Unicode obecnie standaryzuje prawie 110 000 znaków. Dodatkowo Unicode przypisuje nazwę do każdego z tych znaków.
Lista znaków wraz z ich nazwami stanowi zatem warstwę aplikacji Unicode.
Na przykład znak Ç nazywa się „łacińska litera c cedilla”.
Definicja ta jest całkowicie identyczna z definicją ISO/IEC 10646, która dopuszcza każde rozszerzenie katalogu. Unicode używa tylko nazw normatywnych w języku angielskim w tekście swojego standardu, ale norma ISO / IEC 10646 jest publikowana w dwóch równie normatywnych językach. W ten sposób nazwy w języku angielskim i francuskim są znormalizowane.
W rzeczywistości każde rozszerzenie katalogu jest obecnie dokonywane wspólnie przez grupę roboczą odpowiedzialną za ISO / IEC 10646 ( JTC1 / SC2 / WG2 , której członkami głosującymi są wyłącznie krajowe organy normalizacyjne krajów uczestniczących lub ich oficjalny przedstawiciel) oraz Komitet Techniczny Unicode UTC (którego głosujący członkowie mogą być dowolną organizacją prywatną lub interesu publicznego, a nawet rządem, który przystąpił i uiszcza roczną opłatę za udział w tych decyzjach) .
Kodowany zestaw znaków ( kodowany zestaw znaków )Tutaj liczba skojarzona z każdym znakiem jest dodawana do poprzedniej tabeli. Zauważ, że nie jest to reprezentacja w pamięci, tylko liczba całkowita, zwana punktem kodowym . Przestrzeń kodowa dla tych numerów jest podzielona na 17 obszarów po 65 536 punktów kodowych. Obszary te nazywane są samolotami .
Punkt kodowy jest oznaczony „U + xxxx”, gdzie „xxxx” jest szesnastkowe i ma od 4 do 6 cyfr :
Tak więc znak o nazwie „łacińska wielka litera c cedilla” (Ç) ma numer U + 00C7. Należy na pierwszym planie.
W zasadzie wszystkie punkty kodowe między U + 0000 a U + 10FFFF są dostępne, ale pewne przedziały są na zawsze zarezerwowane dla określonych zastosowań, w szczególności wyłączona strefa pośrednia, aby umożliwić kodowanie UTF-16 ( patrz poniżej), obszary do użytku prywatnego i niektóre regiony (np U + fffe lub U + FFFF) zawierający nie-postacie , których stosowanie jest zabronione w zgodnej wymiany danych. Inne punkty kodowe są już przypisane do znaków lub zarezerwowane dla przyszłej standaryzacji.
Strefa do użytku prywatnego: Unicode przypisał wiele punktów kodowych do prawidłowych znaków, ale których semantyka jest nieznana z powodu użytku prywatnego (na przykład dwa ostatnie plany między U + F0000 i U + 10FFFF są w całości przeznaczone do tego użytku, z wyjątkiem dwóch kodów punkty na końcu każdego planu, które są zabronione jako nieznaki w zgodnym tekście).
Tutaj znowu standaryzacja kodowania, czyli przypisanie punktów kodowych do znaków we wspólnym repertuarze, jest wspólną decyzją wspólną między standardami Unicode i ISO/IEC 10646 . Wszystkie znaki w katalogu mają unikalny punkt kodowy (nawet jeśli w przypadku niektórych języków lub Unicode niektóre znaki są uważane za równoważne).
Można zauważyć, że jeśli katalog znaków jest rozszerzalny, jest ograniczony przez górną granicę przestrzeni kodowania: U + 10FFFF. Zdecydowana większość możliwych punktów kodowych nie jest powiązana z żadnym konkretnym znakiem, ale może być w dowolnym momencie.
Również te wciąż wolne punkty kodowe nie są uważane za nieprawidłowe, ale reprezentują znaki abstrakcyjne (jeszcze nie określone i tymczasowo zarezerwowane). Te abstrakcyjne znaki (jak również znaki do użytku prywatnego) uzupełniają zakodowany zestaw znaków standardowego katalogu w pojedynczą grę o nazwie " uniwersalny zakodowany zestaw znaków " ( Uniwersalny zestaw znaków zakodowanych , często w skrócie UCS ), która zawiera wszystkie zakodowane zestawy znaków katalogów każdej z przeszłych, obecnych i przyszłych wersji ISO/IEC 10646 i Unicode (tylko od wersji 1.1 ).
Formalne kodowanie znaków ( formularz kodowania znaków )Tym razem dochodzimy do fizycznej reprezentacji (w pamięci, na dysku itp.): ta warstwa określa, która jednostka kodująca (jednostki kodu ) lub kodet będzie reprezentować znak, a dokładniej punkt kodowy: bajt , seizet (w ) (16-bitowe słowo) lub trzydzieści deuzet (en) (32-bitowe słowo).
Takich formalizmów może być (i jest) kilka. Szczególny formalizm musi określać rozmiar jednostki kodującej i wskazywać, w jaki sposób liczba całkowita reprezentująca punkt kodowy jest reprezentowana w szeregu jednostek kodujących - i odwrotnie, tj. jak znaleźć punkt kodowy przy danym ciągu jednostek kodujących.
Znaki serializacji mechanizmu ( schemat kodowania znaków )Ta warstwa zajmuje się serializacją sekwencji jednostek kodujących zdefiniowanych przez poprzednią warstwę w sekwencje bajtów. W tym miejscu kolejność bajtów jest wybierana między big-endian (najpierw najbardziej znaczący bajt) a little-endian (najpierw najmniej znaczący bajt).
Na tym etapie można również dodać wskaźnik kolejności bajtów (lub BOM, dla znacznika kolejności bajtów ), który wskazuje na początku pliku lub strumienia danych, czy jest to big-endian, czy little-endian. W świecie Internetu jest rzadko używany, preferując wyraźny znacznik (" charset = UTF-16BE " w MIME , na przykład, aby wskazać strumień danych big-endian, gdzie BE oznacza big endian ).
Przekodowywanie transferu ( składnia kodowania transferu )Tutaj opcjonalne mechanizmy kompresji lub szyfrowania.
Może również wystąpić nadmierne kodowanie, takie jak w przypadku LDAP, które określa, że ciągi Unicode powinny być zakodowane w UTF-8 i nadmiernie zakodowane w Base64 .
Aby przezwyciężyć sztywne ograniczenia poprzednich standardów (sekwencja bitów, reprezentacja), Unicode odtąd oddziela z jednej strony definicję zestawu znaków (lista znaków według ich nazwy) i ich indeks, punkt kodowy kodowania . W związku z tym nie możemy mówić o rozmiarze znaku Unicode, ponieważ zależy on od wybranego kodowania, a zatem może się zmieniać w dowolnym momencie. W praktyce UTF-8 jest szeroko stosowany w krajach zachodnich.
Tam, gdzie ASCII używa 7 bitów, a ISO/IEC 8859-1 8 bitów (jak większość krajowych stron kodowych), Unicode, który zbiera znaki z każdej strony kodowej, musiał używać więcej niż 8 bitów na jeden bajt . Limit został początkowo ustawiony na 16 bitów dla wczesnych wersji Unicode i 32 bity dla wczesnych wersji ISO/IEC 10646 .
Obecny limit wynosi teraz od 20 do 21 bitów na punkt kodowy przypisany do standardowych znaków w dwóch obecnie wzajemnie kompatybilnych standardach:
Unicode i ISO / IEC 10646 akceptują kilka form uniwersalnej transformacji w celu reprezentowania prawidłowego punktu kodowego. Zacytujmy:
Liczba po UTF reprezentuje minimalną liczbę bitów punktów kodowych, za pomocą których reprezentowany jest prawidłowy punkt kodu.
Te przekształcenia zostały pierwotnie utworzone dla wewnętrznych schematów reprezentacji i kodowania punktów kodowych ISO/IEC 10646 , które pierwotnie mogły definiować 31-bitowe punkty kodowe. Od tego czasu norma ISO/IEC 10646 została zmieniona, dzięki czemu te trzy formy są w pełni kompatybilne ze sobą i umożliwiają zakodowanie wszystkich punktów kodowych (ponieważ UTF-16 pozwala na kodowanie tylko punktów kodowych pierwszych 17 płaszczyzn reprezentowane) .
Unicode również bardzo ściśle ustandaryzował te trzy formy transformacji wszystkich ważnych punktów kodowych (U + 0000 do U + D7FF i U + E000 do U + 10FFFF) i tylko ich, niezależnie od tego, czy ma reprezentować tekst w sekwencjach postaci punktów kodowych, czy punkty kodowe przypisane do prawidłowych znaków, zarezerwowane lub przypisane do znaków niebędących znakami. Punkty kodowe przypisane do półstref (U + D800 do U + DFFF), używane tylko w UTF-16, są indywidualnie nieważne, ponieważ są używane do reprezentowania, przez parę 2 16-bitowych punktów kodowych, punktów kodu dla 16 dodatkowych planów.
UTF-8UTF-8 , określony w dokumencie RFC 3629, jest wspólne dla większości aplikacji Unix i Internecie . Jego kodowanie o zmiennej wielkości pozwala na przeciętnie mniej kosztowne wykorzystanie pamięci (dla języków z alfabetem łacińskim). Ale to znacznie spowalnia operacji dotyczących ekstrakcji podciąg w niektórych językach, które ciągi liczb całkowitych przez indeks (przykład = „815 th charakter string”), dlatego konieczne jest, aby policzyć znaki z początku łańcucha wiedzieć gdzie jest pierwszy znak do wyodrębnienia.
UTF-8 zapewnia również, i to jest jego główną zaletą, kompatybilność z prostą manipulacją ciągami znaków w ASCII w językach programowania . Dlatego programy napisane w C mogą często działać bez modyfikacji.
Początkowo UTF-8 mógł kodować dowolny punkt kodowy między U + 0000 a U + 7FFFFFFF (a więc do 31 bitów). To użycie jest przestarzałe, a norma ISO / IEC 10646 została zmieniona, aby obsługiwać tylko prawidłowe punkty kodowe pierwszych 17 strzałów, z wyjątkiem tych z połowy strefy odpowiadającej elementom kodu używanym w UTF-16 do reprezentacji na dwóch kodach elementy, punkty kodowe 16 dodatkowych planów. Również najdłuższe sekwencje w UTF-8 wymagają maksymalnie 4 bajtów, zamiast 6 wcześniej. Ponadto UTF-8 został najpierw zmieniony przez Unicode, a następnie przez ISO/IEC 10646, aby akceptować tylko najkrótszą reprezentację każdego punktu kodowego ( unikalność kodowania). Możliwość reprezentowania tej samej postaci na kilka różnych sposobów stwarzała problemy z bezpieczeństwem, ponieważ haker mógł ominąć „przefiltrowaną” formę innym pismem.
Jego przewagą nad UTF-16 (i UTF-32) jest to, że różnice w kolejności bajtów tworzących słowo ( endianness ) nie stanowią problemu w sieci systemów heterogenicznych; dlatego ta transformacja jest obecnie wykorzystywana przez większość standardowych protokołów wymiany.
Z drugiej strony UTF-8 jest w pełni kompatybilny do transmisji tekstów przez protokoły oparte na zestawie znaków ASCII lub może być kompatybilny (kosztem wielobajtowej transformacji znaków spoza ASCII) z protokołami wymiany obsługującymi 8-bitowe kodowane zestawy znaków (oparte na normie ISO/IEC 8859 lub wielu innych 8-bitowych kodowanych zestawach znaków zdefiniowanych przez normy krajowe lub określone systemy zastrzeżone).
Jego główną wadą jest kodowanie o bardzo zmiennej długości (1 bajt dla punktów kodowych przypisanych do znaków ASCII - ISO / IEC 646 , 2 do 4 bajtów dla pozostałych punktów kodowych), nawet przy autosynchronizacji specyficznej dla UTF-8 kodowanie umożliwia określenie początku sekwencji z losowej pozycji (poprzez wykonanie co najwyżej 3 dodatkowych odczytów poprzedzających punktów kodowych). Jednak to kodowanie nie ma na celu ułatwienia przetwarzania ciągów znaków: często preferujemy UTF-16, czasem UTF-32 (chciwy w pamięci).
PochodneUTF-16 jest dobrym kompromisem, gdy pamięć nie jest zbyt mały, gdyż zdecydowana większość znaków Unicode przypisanych do pism współczesnych języków (w tym najczęściej używanych znaków) znajdują się w wielojęzycznej bazy planu, a zatem może być reprezentowany na 16 bitach. Francuska wersja ISO/IEC 10646 nazywa te 16-bitowe słowa „seizets”, ale wersja międzynarodowa opisuje je jako klasyczne 16-bitowe słowa składające się z dwóch bajtów i podlegające zwykłym regułom endyzmu .
cześć \ lo | DC00 | DC01 | ... | DFFF |
---|---|---|---|---|
D800 | 10 000 | 10001 | ... | 103FF |
D801 | 10400 | 10401 | ... | 107FF |
⋮ | ⋮ | ⋮ | ⋱ | ⋮ |
DBFF | 10FC00 | 10FC01 | ... | 10FFFF |
Punkty kodowe szesnastu dodatkowych płaszczyzn wymagają przekształcenia na dwóch 16-bitowych słowach:
Ponieważ większość powszechnie używanych znaków znajduje się w płaszczyźnie podstawowej, kodowanie dodatkowych klipów jest często słabo testowane w oprogramowaniu, co prowadzi do błędów lub problemów z bezpieczeństwem nawet w szeroko rozpowszechnionym oprogramowaniu. Niektóre ramy prawne, takie jak GB 18030 , mogą wymagać wsparcia dodatkowych planów, zawierających w szczególności znaki występujące w nazwach własnych.
Możliwe jest określenie początku sekwencji kodującej z dowolnego punktu w tekście reprezentowanym w UTF-16 przez wykonanie co najwyżej jednego dodatkowego odczytu, tylko jeśli ten punkt kodowy znajduje się w dolnej połowie obszaru. Ta forma jest bardziej ekonomiczna i łatwiejsza do szybkiego przetwarzania niż UTF-8 do reprezentacji tekstów zawierających kilka znaków ASCII (U + 0000 do U + 007F).
Jednak ta transformacja ma dwa niezgodne schematy kodowania, które zależą od kolejności bajtów w 16-bitowej reprezentacji liczb całkowitych. Aby rozwiązać tę niejednoznaczność i umożliwić transmisję między systemami heterogenicznymi, konieczne jest dodanie informacji wskazujących na zastosowany schemat kodowania (UTF-16BE lub UTF-16LE) lub poprzedzenie zakodowanego tekstu reprezentacją punktu kodowego ważne U + FEFF (przypisany do znaku „nierozdzielająca spacja o zerowej szerokości”, znak zarezerwowany teraz do tego wyłącznego użytku jako znacznik porządkowania bajtów), ponieważ punkt kodowy „odwrócony” U + FFFE prawidłowy jest nieznakiem, zabronionym w tekstach zgodnie z Unicode i ISO/IEC 10646 .
Inną wadą UTF-16 jest to, że tekst przekształcony za jego pomocą i przesłany za pomocą jednego z dwóch schematów kodowania zawiera dużą liczbę bajtów, które są puste lub mają wartość sprzeczną z wartościami d. bajtów zarezerwowanych przez niektóre protokoły wymiany.
Jest to w szczególności kodowanie, którego platforma Java używa wewnętrznie, a także Windows dla swoich interfejsów API zgodnych z Unicode (z typem wchar).
UTF-32UTF-32 jest używany, gdy pamięć nie jest problem i musimy mieć dostęp do znaków bezpośrednio i bez zmian w wielkości ( egipskich hieroglifów ).
Zaletą tej znormalizowanej transformacji jest to, że wszystkie elementy kodu mają ten sam rozmiar. Dlatego nie jest konieczne odczytywanie dodatkowych punktów kodowych, aby określić początek reprezentacji punktu kodowego.
Jednak ten format jest szczególnie nieekonomiczny (w tym w pamięci), ponieważ niepotrzebnie „marnuje” co najmniej jeden bajt (zawsze zero) na znak. Rozmiar tekstu w pamięci ma negatywny wpływ na wydajność, ponieważ wymaga większej liczby odczytów i zapisów na dysku w przypadku pełnej pamięci RAM , a także zmniejsza wydajność pamięci podręcznej procesorów.
W przypadku tekstów pisanych w obecnych językach nowożytnych (poza pewnymi rzadkimi znakami dodatkowej płaszczyzny ideograficznej), a zatem wykorzystujących tylko punkty kodowe podstawowej płaszczyzny wielojęzycznej, ta transformacja podwaja ilość wymaganej pamięci w porównaniu z UTF-16.
Podobnie jak UTF-16, UTF-32 ma kilka schematów kodowania w zależności od kolejności bajtów tworzących liczbę całkowitą większą niż 8 bitów (dwa schematy kodowania UTF-32 są standaryzowane, UTF-32BE i UTF-32LE). Dlatego konieczne jest również określenie tego schematu kodowania lub określenie go przez poprzedzenie tekstu przedstawieniem w UTF-32 punktu kodowego U + FEFF. Podobnie jak UTF-16, obecność bajtów zerowych w standardowych schematach kodowania UTF-32 sprawia, że jest niekompatybilny z wieloma protokołami wymiany między systemami heterogenicznymi.
Również ten format jest używany najczęściej tylko bardzo lokalnie do pewnego przetwarzania jako forma pośrednia, która jest łatwiejsza w obsłudze i często preferujemy transformację UTF-16, która jest często bardziej wydajna do przetwarzania i przechowywania dużych ilości tekstów, konwersji między oba są bardzo proste do wykonania i bardzo tanie pod względem złożoności przetwarzania.
W rzeczywistości wiele bibliotek edytorów tekstu jest pisanych tylko w UTF-16 i jest bardziej wydajnych niż UTF-32, nawet jeśli teksty zawierają znaki z dodatkowych płaszczyzn (ponieważ ten przypadek liczby pozostaje rzadki w zdecydowanej większości przypadków).
Należy jednak pamiętać, że transformacja do UTF-32 wykorzystuje 32-bitowe punkty kodowe, z których wiele może nie reprezentować żadnego ważnego punktu kodowego (wartości poza dwoma przedziałami reprezentującymi ważne punkty kodowe U+0000 do U+D7FF i U+ E000 do U + 10FFFF), w związku z tym brak ważnego lub zastrzeżonego znaku (żadne informacje w nim zawarte nie mogą zatem być tekstem w sensie Unicode). Przesyłanie tekstów przy użyciu tych nieprawidłowych wartości kodu w jednym ze znormalizowanych schematów kodowania UTF-32 jest zabronione dla każdego systemu zgodnego z Unicode (zamiast tego konieczne jest użycie punktów kodowych do użytku prywatnego), ponieważ będzie to niemożliwe do reprezentowania ich w innej transformacji UTF, z którą trzy standardowe kody UTF są zgodne bijective.
Jest to transformacja Unicode, która nie jest definiowana przez Konsorcjum Unicode, ale przez administrację standardów w Chinach, gdzie jego obsługa jest obowiązkowa w aplikacjach. Historycznie był to zakodowany zestaw znaków, który został rozszerzony o obsługę całego repertuaru UCS przez transformację algorytmiczną uzupełniającą dużą tabelę korespondencji między kodami.
Twierdzenie, że Unicode koduje znaki, jest równoznaczne z twierdzeniem, że przypisuje liczbę abstrakcyjnym symbolom, zgodnie z zasadą kodowania logicznego. Z drugiej strony Unicode nie koduje graficznych reprezentacji znaków, glifów . Nie ma zatem bijekcji między przedstawieniem znaku a jego liczbą, ponieważ wszystkie graficzne odmiany stylu są zunifikowane.
Ponadto, w przeciwieństwie do klasycznej czcionki ASCII lub Latin-1 , wybór glifu przez kod nie jest unikalny i często jest kontekstowy, a także może wyświetlać ten sam glif dla różnych kodów. Tak więc francuski znak "é" można opisać na dwa sposoby: albo bezpośrednio przy użyciu liczby odpowiadającej "é", albo po liczbie "e" za pomocą ostrego akcentu bez polowania. Niezależnie od wybranej opcji zostanie wyświetlony ten sam glif. O pierwszym znaku powiemy, że jest prekomponowany, o drugim, że jest to kompozycja (dwa znaki tworzą jeden glif złożony z obu). Jest to dozwolone, a nawet wysoce zalecane, ponieważ różne formy kodowania są klasyfikowane przez Unicode jako „kanonicznie równoważne”, co oznacza, że dwie równoważne formy kodowania powinny być traktowane identycznie.
W tym przypadku występuje wiele znaków złożonych i można je zakodować na dwa sposoby (lub więcej, niektóre znaki złożone można rozłożyć na więcej niż jeden sposób, zwłaszcza gdy mają kilka znaków diakrytycznych). Najczęściej znak prekomponowany jest preferowany do zakodowania tekstu, jeśli taki istnieje (tak jest na przykład w przypadku politonicznej greki , która zakodowana w rozkładzie może nie być zadowalająca graficznie: w zależności od czcionek znaki różne składniki glifu są czasami źle ułożone i trudne do odczytania). Jednak nie wszystkie znaki złożone mają unikalny punkt kodowy dla ich wstępnie złożonej formy.
Podobnie niektóre systemy pisma, takie jak Devânagarî , perski lub arabski , wymagają złożonego traktowania ligatur : grafemy zmieniają kształt w zależności od ich położenia lub sąsiadów (patrz Wariant kontekstowy i Litera łączona ). Wybranie prawidłowego glifu wymaga przetwarzania w celu określenia, który kształt kontekstowy wybrać w czcionce, mimo że wszystkie kształty kontekstowe są zakodowane identycznie w Unicode.
Z tych powodów należy ostrożnie obchodzić się z czcionką Unicode. Na przykład czcionka ze wszystkimi istniejącymi glifami nie jest wystarczająca. Niezbędne jest również, aby system wyświetlania ( silnik renderujący ) posiadał mechanizmy zdolne do przetwarzania ligatur , wariantów kontekstowych i formularzy łączonych specyficznych dla określonych języków. I odwrotnie, czcionka, która reprezentuje tylko część znaków, ale wie, jak je poprawnie wyświetlić, lepiej zasługuje na tytuł „czcionka Unicode”. Wreszcie pewne ograniczenia techniczne formatów czcionek mogą uniemożliwić im obsługę całego katalogu. W praktyce nie da się (w 2009 roku) znaleźć jednej czcionki obsługującej cały katalog.
Czcionka znakowa Unicode jest zatem tylko czcionką umożliwiającą bezpośrednie wyświetlanie tekstu zakodowanego we wszystkich formach autoryzowanych przez Unicode i umożliwiającą obsługę spójnego podzbioru dostosowanego do jednego lub więcej języków w celu obsługi jednego lub więcej skryptów. Żaden krój pisma Unicode nie może „działać” samodzielnie, a pełna obsługa pisania wymaga obsługi tych elementów w silniku renderującym , zdolnym do wykrywania równoważnych formularzy kodowania, wyszukiwania formularzy kontekstowych w tekście i wybierania różnych glifów czcionki zakodowanej za pomocą Unicode, korzystając w razie potrzeby z tabel korespondencji zawartych w samej czcionce.
ICU wieloplatformowa biblioteka oprogramowanie pozwala na manipulowanie danych zakodowanych z Unicode. Obsługa Unicode specyficzna dla platformy jest również zintegrowana z nowoczesnymi systemami ( Java , Microsoft Windows , GNU/Linux , standardowe biblioteki C/C++ , Python itp.).
Typy używane do przechowywania zmiennych Unicode to:
Język programowania | Wpisz pojedynczy znak | Wpisz dowolny tekst |
---|---|---|
VS | char[4] Gdzie wchar_t[2] | char[] Gdzie wchar_t[] |
C++ | char[4] Gdzie wchar_t[2] | char[]lub wchar_t[]lub std::stringlubstd::wstring |
Jawa | char[2] Gdzie int | char[] Gdzie String |
Biblioteka ICU (dla C/C++ lub Java) | UChar | UChar[]lub String,UnicodeString |
JavaScript lub ECMAScript | char | string |
C# lub J# | char | string |
Delfy | char[4] Gdzie widechar[2] | string Gdzie widestring |
Pyton 2 | unicode | |
Pyton 3 | str | |
Udać się | rune(= int32) | string Gdzie []byte |
Szybki | Character | String |
Unicode wciąż jednak cierpi z powodu słabej obsługi wyrażeń regularnych przez niektóre programy, chociaż biblioteki takie jak ICU i Java mogą je obsługiwać. Takie wsparcie nie zostało jeszcze ustandaryzowane dla ECMAScript i jest zapewniane jedynie za pomocą bibliotek stworzonych z tym językiem lub interfejsów dla interoperacyjności z innymi systemami (zwłaszcza z CORBA , COM ) lub językami (zwłaszcza C++ i Java ).
Aktualne partycjonowanie można znaleźć na oficjalnej stronie Unicode. Jednak biorąc pod uwagę ważną rolę Unicode w dzisiejszych czasach ( ISO/IEC 10646 ), główne bloki znaków zostaną tutaj opisane. Francuskie nazwy są oficjalnymi nazwami ISO/IEC 10646 , międzynarodowego dwujęzycznego standardu, który używa tych samych znaków co Unicode. Są tak oficjalne, jak nazwy angielskie.
Stary standard Unicode 1.0 jest przestarzały i niekompatybilny z ISO/IEC 10646 i Unicode 1.1 oraz wszystkimi jego późniejszymi wersjami; główna niezgodność dotyczy bloków znaków Hangul używanych do pisania języka koreańskiego, które zmieniły położenie i których stare punkty kodowe zostały od tego czasu przypisane do innych bloków. Poniższa tabela jest zgodna z ISO/IEC 10646 (wszystkie wersje) i Unicode 1.1 (lub nowszym).
NB Przypadek nazw bloków nie jest normatywny. „Basic Latin” jest zatem odpowiednikiem „BASIC LATIN”.
W poniższych tabelach dowolna nazwa bloku z uwagą odnoszącą się do oficjalnego pliku PDF w formacie Unicode oznacza, że strona Wikipedii powiązana z tym blokiem nie istnieje lub jest nieprawidłowa.
Podstawowy plan wielojęzyczny (PMB, 0000 do FFFF)Punkty kodowe | Oficjalna nazwa bloku | Oficjalny PDF | Dowiedz się więcej | |
---|---|---|---|---|
Początek | Koniec | |||
0000 | 007F | Podstawowe polecenia C0 i łacińskie | U0000 | patrz ISO/IEC 646 , ASCII , alfabet łaciński , znaki kontrolne Unicode |
0080 | 00FF | Polecenia C1 i dodatek Latin-1 | U0080 | patrz ISO / IEC 8859 , ISO / IEC 8859-1 , alfabet łaciński , znaki kontrolne Unicode Uni |
0100 | 017F | Rozszerzony łaciński A | U0100 | patrz alfabet łaciński |
0180 | 024F | Rozszerzony łaciński B | U0180 | patrz alfabet łaciński |
0250 | 02AF | Międzynarodowy alfabet fonetyczny (API) | U0250 | zobacz międzynarodowy alfabet fonetyczny |
02B0 | 02FF | Litery zmieniające o szerokości | U02B0 | patrz Znaki diakrytyczne , Alfabet łaciński , Znaki diakrytyczne alfabetu łacińskiego , Międzynarodowy alfabet fonetyczny |
0300 | 036F | Znaki diakrytyczne | U0300 | zobacz znaków diakrytycznych , znaków diakrytycznych z alfabetu łacińskiego , znaków diakrytycznych z alfabetu greckiego , koptyjskiego alfabetu , znaki diakrytyczne w cyrylicy |
0370 | 03FF | grecki i koptyjski | U0370 | zob. alfabet grecki i alfabet koptyjski |
0400 | 04FF | cyrylica | U0400 | patrz cyrylica |
0500 | 052F | Dodatek cyrylicy | U0500 | patrz cyrylica |
0530 | 058F | ormiański | U0530 | zobacz alfabet ormiański |
0590 | 05FF | hebrajski | U0590 | zob. alfabet hebrajski , znaki diakrytyczne , znaki diakrytyczne alfabetu hebrajskiego |
0600 | 06FF | Arab | U0600 | patrz alfabet arabski |
0700 | 074F | syryjski | U0700 | patrz syryjski |
0750 | 077F | Dodatek arabski | U0750 | patrz alfabet arabski |
0780 | 07BF | Thâna | U0780 | zobacz alfabet malediwski |
07C0 | 07FF | N’ko | U07C0 | zobacz N’ko |
0800 | 083F | Samarytanin | U0800 | zobacz alfabet samarytański |
0840 | 085F | mandeański | U0840 | zobacz alfabet mandejski |
0860 | 086F | Suplement syryjski | U0860 | patrz syryjski |
0870 | 089F | rezerwować | - | - |
08A0 | 08FF | Rozszerzony arabski A | U08A0 | zobacz alfabetu arabskiego , znaków diakrytycznych , znaków diakrytycznych z alfabetu arabskiego |
0900 | 097F | dewanagari | U0900 | patrz Devanâgarî |
0980 | 09FF | bengalski | U0980 | patrz bengalskiî |
0A00 | 0A7F | Gurmouchi | U0A00 | patrz Gurmukhīh |
0A80 | 0AFF | Gudżarat | U0A80 | zobacz alfabet gudżarati |
0B00 | 0B7F | orija | U0B00 | zobacz orija |
0B80 | 0BFF | Tamil | U0B80 | zobacz tamilski |
0C00 | 0C7F | Telougou | U0C00 | zobacz Telougou |
0C80 | 0CFF | Kannara | U0C80 | patrz Kannara |
0D00 | 0D7F | malajalam | U0D00 | zobacz malajalam |
0D80 | 0DFF | cejloński | U0D80 | zobacz Singhalese |
0E00 | 0E7F | tajski | U0E00 | zobacz tajski |
0E80 | 0EFF | laotański | U0E80 | zobacz Lao |
0F00 | 0FFF | tybetański | U0F00 | patrz tybetański |
1000 | 109F | Birmańczyk | U1000 | patrz birmański |
10A0 | 10FF | gruziński | U10A0 | patrz gruziński , gruziński alfabet |
1100 | 11FF | Jamos hangul | U1100 | zobacz Hangûl |
1200 | 137F | etiopczyk | U1200 | zobacz Alphasyllabaire geez |
1380 | 139F | Suplement etiopski | U1380 | zobacz Alphasyllabaire geez |
13A0 | 13FF | Czirokez | U13B0 | patrz sylabariusz Cherokee |
1400 | 167F | Ujednolicone kanadyjskie rdzenne sylaby | U1400 | zobacz rdzennych języków amerykańskich |
1680 | 169F | Ogam | U1680 | patrz alfabet Ogamiczny |
16A0 | 16FF | Runy | U16A0 | zobacz alfabet runiczny |
1700 | 171F | tagalski | U1700 | zobacz tagalski |
1720 | 173F | Hanounó | U1720 | zobacz alfabet Hanunóo (en) |
1740 | 175F | Bouhide | U1740 | zobacz Buhid (pl) |
1760 | 177F | Tagbanoua | U1760 | zobacz Alfabet Tagbanoua (pl) |
1780 | 17FF | khmerski | U1780 | zobaczyć Khmerów |
1800 | 18AF | mongolski | U1800 | patrz mongolski |
18B0 | 18FF | Rozszerzone kanadyjskie rdzenne sylaby | U18B0 | zobacz rdzennych języków amerykańskich |
1900 | 194F | Limbou | U1900 | zobacz Limbou |
1950 | 197F | Taj to | U1950 | patrz Taï-le |
1980 | 19DF | Nowa Taï lü | U1980 | zobacz Tai lü |
19E0 | 19FF | Symbole khmerskie | U19E0 | zobaczyć Khmerów |
1A00 | 1A1F | Bougui | U1A00 | zobacz Język Bugis , Pisanie Lontara |
1A20 | 1AAF | Tai tam | U1A20 | zobacz alfabet Taï Tham ( fr ) |
1AB0 | 1AFF | Rozszerzone znaki diakrytyczne | U1AB0 | zobacz znaki diakrytyczne |
1B00 | 1B7F | balijski | U1B00 | zobacz pismo balijskie |
1B80 | 1BBF | Soundane | U1B80 | zobacz Soundanese , Alfabet sudański (en) |
1BC0 | 1BFF | Batak | U1BC0 | zobacz skrypt Bataka |
1C00 | 1C4F | Lepcha | U1C00 | zobacz alfabet Lepch (en) |
1C50 | 1C7F | Ol chiki | U1C50 | zobacz alfabet santâlî |
1C80 | 1C8F | Rozszerzona cyrylica C | U1C80 | patrz alfabet cyrylicy , cerkiewnosłowiański |
1C90 | 1CBF | Rozszerzony gruziński | U1C90 | patrz gruziński , gruziński alfabet |
1CC0 | 1CCF | Dodatek sundajski | U1CC0 | zobacz Soundanese , Alfabet sudański (en) |
1CD0 | 1CFF | Rozszerzenia wedyjskie | U1CD0 | patrz sanskryt |
1D00 | 1K7F | Dodatek fonetyczny | U1D00 | zobacz międzynarodowy alfabet fonetyczny |
1K80 | 1DBF | Rozszerzony dodatek fonetyczny | U1D80 | zobacz międzynarodowy alfabet fonetyczny |
1DC0 | 1DFF | Suplement znaków diakrytycznych | U1DC0 | zobacz znaki diakrytyczne |
1E00 | 1EFF | Łaciński rozszerzony dodatkowy | U1E00 | patrz alfabet łaciński |
1F00 | 1FFF | Rozszerzony grecki | U1F00 | zob. alfabet grecki , greka politoniczna |
2000 | 206F | Ogólna interpunkcja | U2000 | zobacz Interpunkcja , Spacja |
2070 | 209F | Wykładniki i indeksy | U2070 | zobacz wykładnik i Indeks dolny |
20A0 | 20CF | Symbole walut | U20A0 | zobacz symbol waluty |
20D0 | 20FF | Znaki kombinatoryczne dla symboli | U20D0 | patrz strzałka , obrót |
2100 | 214F | Symbole literowe | U2100 | patrz Temperatura , Symbol matematyczny , Symbole prawa znaków towarowych |
2150 | 218F | Formy liczbowe | U2150 | patrz cyfra rzymska , ułamek |
2190 | 21FF | Strzałki | U2190 | patrz strzałka |
2200 | 22FF | Operatory matematyczne | U2200 | zobacz Operatory matematyczne |
2300 | 23FF | Różne znaki techniczne | U2300 | patrz Alfabet grecki , Interpunkcja , Strzałka , Symbole matematyczne , Emoji |
2400 | 243F | Piktogramy poleceń | U2400 | patrz ISO / IEC 8859 , ISO / IEC 646 , Kontrola C0 (en) |
2440 | 245F | Optyczne rozpoznawanie znaków | U2430 | patrz Optyczne rozpoznawanie znaków |
2460 | 24FF | Alfanumeryczne kółko | U2460 | patrz alfabet łaciński , cyfry arabskie |
2500 | 257F | Siatki | U2500 | zobacz Postać do rysowania kształtów (pl) |
2580 | 259F | Kostka brukowa | U2580 | zobacz Kształt rysowania postaci (w) , Prostokąt |
25A0 | 25FF | Figury geometryczne | U25A0 | zobacz kształt geometryczny |
2600 | 26FF | Różne symbole | U2600 | patrz Symbol , Emoji , Francuska gra karciana , Szachy , Symbol płci |
2700 | 27BF | Casseau | U2700 | patrz Symbol , Cyfry arabskie , Interpunkcja , Emoji , Operatory matematyczne , Strzałka |
27C0 | 27EF | Różne symbole matematyczne A | U27C0 | patrz symbol matematyczny |
27F0 | 27FF | Uzupełnienie strzałek A | U27F0 | patrz strzałka |
2800 | 28FF | kombinacje Braille'a | U2800 | patrz Braille |
2900 | 297F | Uzupełnienie strzałek B | U2900 | patrz strzałka |
2980 | 29FF | Różne symbole matematyczne B | U2980 | patrz symbol matematyczny |
2A00 | 2AFF | Dodatkowe operatory matematyczne | U2A00 | zobacz Operatory matematyczne |
2B00 | 2BFF | Różne symbole i strzałki | U2B00 | patrz Strzałka , Emoji |
2C00 | 2C5F | Głagotic | U2C00 | patrz alfabet głagolicy |
2C60 | 2C7F | Łacińska rozszerzona C | U2C00 | patrz alfabet łaciński , ujgurski |
2C80 | 2CFF | koptyjski | U2C80 | patrz alfabet koptyjski |
2D00 | 2D2F | Dodatek gruziński | U2D00 | patrz gruziński , gruziński alfabet |
2D30 | 2D7F | Tifinagh | U2D30 | zobacz Tifinagh i języki berberyjskie |
2D80 | 2DDF | Etiopczyk rozszerzony | U2D80 | zobacz Alphasyllabaire geez |
2DE0 | 2DFF | Rozszerzona cyrylica A | U2DE0 | patrz alfabet cyrylicy , znaki diakrytyczne , znaki diakrytyczne alfabetu cyrylicyrill |
2E00 | 2E7F | Dodatek interpunkcyjny | U2E00 | zobacz Interpunkcja |
2E80 | 2EFF | Dodatkowe formy kluczy CJC | U2E80 | zobacz chiński, japoński i koreański , Sinogramme , chińskie pismo , języki chińskie , pisma japońskiego , japoński , hanja , koreański |
2F00 | 2FDF | Chińskie klucze Kangxi | U2F00 | zobacz Słownik znaków Kangxi |
2FE0 | 2FEF | rezerwować | - | - |
2FF0 | 2FFF | Opis ideograficzny | U2FF0 | patrz Opis ideograficzny |
3000 | 303F | Symbole i znaki interpunkcyjne CJC | U3000 | zobacz interpunkcja , chiński, japoński i koreański , Sinogramme , chińskie pismo , języki chińskie , pisma japońskiego , japoński , hanja , koreański |
3040 | 309F | Hiragana | U3040 | patrz Hiragana , Pisma japońskie , japońskie |
30A0 | 30FF | Katakana | U30A0 | patrz Katakana , Pisma japońskie , japońskie |
3100 | 312F | Bopomofo | U3100 | patrz Bopomofo , chiński, japoński i koreański , sinogramme |
3130 | 318F | Jamos kompatybilności z Hangul | U3130 | zobacz Hangûl , Sinogramme , koreański |
3190 | 319F | Kanbun | U3190 | zobacz Kanbun , Sinogramme |
31A0 | 31BF | Bopomofo rozszerzony | U31A0 | patrz Bopomofo , Sinogramme |
31C0 | 31EF | Cechy CJC | U31C0 | zobacz chiński, japoński i koreański , Sinogramme , chińskie pismo , języki chińskie , pisma japońskiego , japoński , hanja , koreański |
31F0 | 31FF | Rozszerzenie fonetyczne Katakana | U31F0 | patrz Katakana , Pisma japońskie , japońskie |
3200 | 32FF | Zakreślone litery i miesiące CJC | U3200 | patrz rysunki arabski , chiński, japoński i koreański , Sinogramme , chiński pisania , języki chińskie , Pismo japońskie , japońskie , hanja , koreańskich |
3300 | 33FF | Kompatybilność CJC | U3000 | zobacz jednostka miary , chiński, japoński i koreański , Sinogramme , chińskim piśmie , języków chińskich , Pisma japoński , japoński , Hanja , koreański |
3400 | 4DBF | Suplement A do ujednoliconych ideogramów CJC ( Część 1 ) ( Część 2 ) |
U3400 | zobacz chiński, japoński i koreański , Sinogramme , chińskie pismo , języki chińskie , pisma japońskiego , japoński , hanja , koreański |
4DC0 | 4DFF | Heksagramy Klasyki Mutacji lub Yi Jing | U4DC0 | patrz Yi Jing , Heksagram , Chiński, Japoński i Koreański , Sinogram |
4E00 | 9FFF | CJC Unified Ideograms ( Część 1 ) ( Część 2 ) ( Część 3 ) ( Część 4 ) ( Część 5 ) ( Część 6 ) |
U4E00 | zobacz chiński, japoński i koreański , Sinogramme , chińskie pismo , języki chińskie , pisma japońskiego , japoński , hanja , koreański , wietnamski |
A000 | A48F | Syllabary yi Gór Świeżych | UA000 | patrz sylabariusz yi |
A490 | A4CF | klawisze Yi | UA490 | patrz sylabariusz yi |
A4D0 | A4FF | Lisu | UA4D0 | patrz Lisu , Fraser alfabetu (en) |
A500 | A63F | Vai | UA500 | zobacz Syllabaire vaï |
A640 | A69F | Rozszerzona cyrylica B | UA640 | patrz cyrylica |
A6A0 | A6FF | Bamou | UA6A0 | zobacz scenariusz Bamoun |
A700 | A71F | Zmiana tonu liter | UA700 | zobacz Język w tonach , Języki chińskie |
A720 | A7FF | Rozszerzony łaciński D | UA720 | zobacz alfabet łaciński |
A800 | A82F | Sylo nâgrî | UA800 | patrz Sylot nâgrî (en) |
A830 | A83F | Popularne w Indiach cyfrowe kształty | UA830 | zobacz Indie |
A840 | A87F | Phags-pa | UA840 | zobacz skrypt Phagpypa |
A880 | A8DF | Saurachtra | UA880 | zobacz Alfabet Saurashtra (pl) |
A8E0 | A8FF | Rozszerzona devanagari | UA8E0 | patrz Devanâgarî |
A900 | A92F | Kayah Li | UA900 | zobacz alfabet Kayah Li |
A930 | A95F | Rejang | UA930 | zobacz Pisanie rejang |
A960 | A97F | Jamos Hangul Rozszerzony A | UA960 | zobacz Hangûl , Sinogramme , koreański |
A980 | A9DF | jawajski | UA980 | zobacz pismo jawajskie |
A9E0 | A9FF | birmański rozszerzony B | UA9E0 | patrz birmański , pismo birmańskie |
AA00 | AA5F | Czam | UAA00 | patrz Cham |
AA60 | AA7F | birmański rozszerzony A | UAA60 | patrz birmański , pismo birmańskie |
AA80 | ADF | Taj Wietnam | UAA80 | zobacz Alfabet taï viêt , Tay dam , Tay don , Tay Song ( fr ) |
AAE0 | AAFF | Meitei mayek przedłużony | UAAE0 | patrz Meitei , pismo Meitei |
AB00 | AB2F | Etiopski rozszerzony A | UAB00 | zobacz Alphasyllabaire geez |
AB30 | AB6F | Rozszerzony łaciński E | UAB30 | patrz alfabet łaciński , Teuthonista , Alphabet d'Ascoli , Alphabet Rousselot-Gilliéron |
AB70 | ABBF | Dodatek Cherokee | UAB70 | patrz sylabariusz Cherokee |
ABC0 | ABFF | Meitei mayek | UABC0 | patrz Meitei , pismo Meitei |
AC00 | D7AF | Sylaby Hangul ( część 1 ) ( część 2 ) ( część 3 ) ( część 4 ) |
UAC00 | zobacz Hangûl , Sinogramme , koreański |
D7B0 | D7FF | Jamos Hangul Rozszerzony B | U27B0 | zobacz Hangûl , Sinogramme , koreański |
D800 | DBFF | Półstrefa o wysokim stopniu pośrednim | UD800 | patrz Górna połowa strefy pośredniej |
DC00 | DFFF | Półstrefa o niskim stopniu pośrednim | UDC00 | patrz Niski pośredni półstrefa |
E000 | F8FF | Obszar prywatnego użytku ( Część 1 ) ( Część 2 ) |
UE000 | Brak oficjalnie zdefiniowanej cechy |
F900 | FAFF | Ideogramy zgodności CJC | UF900 | zobacz chiński, japoński i koreański , Sinogramme , chińskie pismo , języki chińskie , pisma japońskiego , japoński , hanja , koreański |
FB00 | FB4F | Alfabetyczne formy prezentacji | UFB00 | patrz alfabet łaciński , alfabet hebrajski , alfabet ormiański |
FB50 | FDFF | Arabskie formy prezentacji A ( część 1 ) ( część 2 ) ( część 3 ) |
UFB50 | patrz alfabet arabski |
FE00 | FE0F | Selektory wariantów | UFE00 | zobacz Wariant selektorów (w) |
FE10 | FE1F | Kształty pionowe | UFE10 | patrz Interpunkcja , GB 18030 |
FE20 | FE2F | Kombinatoryczne półznaki | UFE20 | zobacz znaki diakrytyczne |
FE30 | FE4F | Formularze zgodności CJC | UFE30 | zobacz chiński, japoński i koreański , Sinogramme , chińskie pismo , języki chińskie , pisma japońskiego , japoński , hanja , koreański |
FE50 | FE6F | Małe różnice w kształcie | UFE50 | patrz Interpunkcja , GBK , GB 2312 , CNS 11643 (en) |
FE70 | FEFF | Arabskie formy prezentacji B | UFE70 | patrz alfabet arabski |
FF00 | FFEF | Kształty o połowie i pełnej szerokości | UFF00 | zobacz kształty na pół i pełnej szerokości , chiński, japoński i koreański , Sinogramme , chińskim piśmie , języków chińskich , Pisma japoński , japoński , Hanja , koreańskim , ASCII , alfabetem łacińskim |
FFF0 | FFFF | Znaki specjalne | UFFF0 | zobacz Znaki specjalne |
Punkty kodowe | Oficjalna nazwa bloku | Oficjalny PDF | Dowiedz się więcej | |
---|---|---|---|---|
Początek | Koniec | |||
10 000 | 1007F | sylabariusz liniowy B | U10000 | patrz liniowy B |
10080 | 100FF | Ideogramy liniowe B | U10080 | patrz liniowy B |
10100 | 1013F | Liczby egejskie | U10100 | zobacz Liczby iEgean (pl) |
10140 | 1018F | Liczby starożytne greckie | U10140 | patrz starożytne greckie liczby |
10190 | 101CF | Starożytne symbole | U10190 | zobacz Jednostki Roman , waluta rzymska |
101D0 | 101FF | Dysk Fajstos | U101D0 | patrz Dysk Fajstos |
10200 | 1027F | rezerwować | - | - |
10280 | 1029F | Lycian | U10280 | patrz Łycień |
102A0 | 102DF | Carien | U102A0 | patrz alfabet karyjski |
102E0 | 102FF | Koptyjskie liczby epakt | U102E0 | patrz Koptyjski |
10300 | 1032F | Alfabet kursywy | U10300 | zobacz stary alfabet italski |
10330 | 1034F | gotyk | U10330 | zobacz gotyk |
10350 | 1037F | stary perm | U10350 | patrz alfabet staropermski |
10380 | 1039F | ugarycki | U10380 | patrz alfabet ugarycki |
103A0 | 103FF | Stary perski | U103A0 | zobacz staroperski |
10400 | 1044F | Deseret | U10400 | zobacz Alfabet deser |
10450 | 1047F | Shavien | U10450 | zobacz alfabet Shavianvian |
10480 | 104AF | Osmania | U10480 | zobacz alfabet Osmanya |
104B0 | 104FF | Osage | U104B0 | zobacz Osage |
10500 | 1052F | Elbasan | U10500 | zobacz skrypt Elbasana |
10530 | 1056F | Aghbański | U10530 | patrz alfabet aghbański |
10570 | 105FF | rezerwować | - | - |
10600 | 1077F | Liniowy A | U10600 | patrz liniowy A |
10780 | 107FF | rezerwować | - | - |
10800 | 1083F | sylabariusz cypryjski | U10800 | patrz sylabariusz cypryjski |
10840 | 1085F | cesarski aramejski | U10840 | zobacz alfabet aramejski |
10860 | 1087F | Alfabet palmireński | U10860 | zobacz alfabet palmireński |
10880 | 108AF | nabatejski | U10880 | zobacz alfabet nabatejski |
108B0 | 108DF | rezerwować | - | - |
108E0 | 108FF | hatreński | U108E0 | zobacz alfabet Hatrénien ( fr ) |
10900 | 1091F | fenicki | U10900 | patrz alfabet fenicki |
10920 | 1093F | Lidian | U10920 | zobacz alfabet lidyjski |
10940 | 1097F | rezerwować | - | - |
10980 | 1099F | Hieroglify meroickie | U10980 | patrz pismo meroickie |
109A0 | 109 FF | Kursywa meroicka | U109A0 | patrz pismo meroickie |
10A00 | 10A5F | Kharochthî | U10A00 | zobacz alfabet kharoshthi |
10A60 | 10A7F | Południowy arabski | U10A60 | zobacz alfabet południowoarabski |
10A80 | 10A9F | Północny arabski | U10A80 | zobacz staroarabska północ (en) |
10AA0 | 10ABF | rezerwować | - | - |
10AC0 | 10AFF | manichejski | U10AC0 | patrz alfabet manichejski (en) |
10B00 | 10B3F | Avestic | U10B00 | zobacz alfabet avestyczny (en) |
10B40 | 10B5F | Napisy partyjskie | U10B40 | patrz inskrypcje Partów (en) |
10B60 | 10B7F | Pehlevi napisów | U10B60 | zobacz skrypt pehlevi |
10B80 | 10BAF | Pehlevi z Psałterzów | U10B80 | patrz pismo pehlevi , Psałterz |
10BB0 | 10BFF | rezerwować | - | - |
10C00 | 10C4F | Orkhon | U10C00 | zobacz alfabet Orkhon |
10C50 | 10C7F | rezerwować | - | - |
10C80 | 10CFF | Stary węgierski | U10C80 | zobacz węgierskie runy |
10D00 | 10E5F | rezerwować | - | - |
10E60 | 10E7F | Cyfrowe symbole Rumi | U10E60 | patrz Figury Fezu , Fezu |
10E80 | 10FDF | rezerwować | - | - |
10FE0 | 10FFF | Elimaic | U10FE0 | patrz Élymaïque (en) |
11000 | 1107F | bramin | U11000 | zobacz Brahmi |
11080 | 110CF | Khaiti | U11080 | zobacz Khaiti |
110D0 | 110FF | Sora sompeng | U110D0 | zobacz Alfabet sora sompeng (pl) |
11100 | 1114F | Czakma | U11100 | zobacz Ojhapath |
11150 | 1117F | Mahajana | U11150 | patrz Mahâjanî (w) |
11180 | 111DF | Charada | U11180 | patrz sharda z alfabetem sylabicznym |
111E0 | 111FF | Singhalskie liczby archaiczne | U111E0 | zobacz Singhalese |
11200 | 1124F | Chojki | U11200 | zobacz Khojki (pl) |
11250 | 1127F | rezerwować | - | - |
11280 | 112AF | Multani | U11280 | zobacz Alfabet Multani (en) |
112B0 | 112FF | Khudabadi | U112B0 | zobacz Pisanie Khudabadi (en) |
11300 | 1137F | Grantha | U11300 | zobacz Grantha |
11380 | 113FF | rezerwować | - | - |
11400 | 1147F | Newa | U11400 | zobacz alfabet Newa (pl) |
11480 | 114DF | Tirhuta | U11480 | patrz Tirhuta |
114E0 | 1157F | rezerwować | - | - |
11580 | 115FF | Siddham | U11580 | patrz siddham z alfabetem sylabicznym |
11600 | 1165F | Modi | U11600 | patrz Modi Alphasyllabary |
11660 | 1167F | Dodatek mongolski | U11660 | patrz mongolski |
11680 | 116CF | Takri | U11680 | zobacz Alfabet Takri (pl) |
116D0 | 116FF | rezerwować | - | - |
11700 | 1173F | Ahom | U11700 | zobacz Alphasyllabaire âhom |
11740 | 1189F | rezerwować | - | - |
118A0 | 118FF | Warang citi | U118A0 | zobacz Warang Citi (pl) |
11900 | 11999 | rezerwować | - | - |
119A0 | 119FF | nandinagarî | U119A0 | zobacz Nandinagari (pl) |
11A00 | 11A4F | Kwadratowy Zanabazar | U11A00 | patrz Zanabazar , mongolski |
11A50 | 11AAF | Sojombo | U11A50 | zobacz scenariusz soyombo |
11AB0 | 11ABF | rezerwować | - | - |
11AC0 | 11AFF | Paou podbródek haou | U11AC0 | zobacz Pisanie Paou chin haou (en) |
11B00 | 11BFF | rezerwować | - | - |
11C00 | 11C6F | Bhaiksuki | U11C00 | zobacz alfabet Bhaiksuki (en) |
11C70 | 11CBF | Marchen | U11C70 | patrz Zhang-zung |
11CC0 | 11CFF | rezerwować | - | - |
11D00 | 11D5F | Masaram gondi | U11D00 | patrz Masaram Gondi (en) , Gondi |
11D60 | 11FBF | rezerwować | - | - |
11FC0 | 11FFF | Suplement tamilski | U11FC0 | zobacz tamilski |
12000 | 123FF | Klinowy | U12000 | patrz pismem klinowym |
12400 | 1247F | Liczby interpunkcyjne i klinowe | U12400 | patrz pismem klinowym |
12480 | 1254F | Pismem klinowym archaicznych dynastii | U12480 | patrz pismem klinowym |
12550 | 12FFF | rezerwować | - | - |
13000 | 1342F | egipskie hieroglify | U13000 | zobacz egipskie pismo hieroglificzne |
13430 | 1343F | Egipskie kontrolki formatowania hieroglifów | U13430 | zobacz egipskie pismo hieroglificzne |
13440 | 143FF |
Zarezerwowane (część 1) (część 2) |
- | - |
14400 | 1467F | Hieroglify Anatolii | U14400 | zobacz anatolijskie hieroglify |
14680 | 167 FF |
Zarezerwowane (część 1) (część 2) (część 3) |
- | - |
16800 | 16A3F | Dodatek Bamoun | U16800 | zobacz scenariusz Bamoun |
16A40 | 16A6F | Mro | U16A40 | zobacz Język Mr (pl) |
16A70 | 16ACF | rezerwować | - | - |
16AD0 | 16AFF | Bassa | U16AD0 | zobacz alfabet basowy |
16B00 | 16B8F | pahawhhmong | U16B00 | zobacz Pahawh hmong |
16B90 | 16EFF | rezerwować | - | - |
16F00 | 16F9F | Miao | U16F00 | zobacz Pisanie Miao (pl) |
16FA0 | 16FDF | rezerwować | - | - |
16FE0 | 16FFF | Symbole ideograficzne i interpunkcja | U16FE0 | patrz Ideogram , pismo Tangut , Nüshu |
17000 | 187 FF | Tangoute (część 1) (część 2) |
U17000 | zobacz pisanie Tangoute |
18800 | 18AFF | Składniki Tangut | U18800 | zobacz pisanie Tangoute |
18B00 | 1AFFF |
Zarezerwowane (część 1) (część 2) (część 3) |
- | - |
1B000 | 1B0FF | Suplement Kana | U1B00 | zobacz japoński , japońskie pisma , Kana |
1B100 | 1B12F | Rozszerzona Kana A | U1B100 | zobacz japoński , japońskie pisma , Kana , Hentaigana |
1B130 | 1B16F | Rozszerzenie małe kana | U1B130 | zobacz japoński , japońskie pisma , Kana , Hentaigana |
1B170 | 1B2FF | Nüshu | U1B170 | zobacz Nüshu |
1B300 | 1BBFF | rezerwować | - | - |
1BC00 | 1BC9F | Zduplikowany skrót | U1BC00 | patrz Stenografia , Émile Duployé |
1BCA0 | 1CFFFF |
Zarezerwowane (część 1) (część 2) |
- | - |
1D000 | 1D0FF | Bizantyjskie symbole muzyczne | U1D000 | zobacz muzykę bizantyjską |
1K100 | 1K1FF | Zachodnie symbole muzyczne | U1D100 | zobacz muzykę zachodnią |
1D200 | 1D24F | Notacja muzyczna starożytnej Grecji | U1D200 | zobacz Starożytna Grecka Muzyka |
1D250 | 1D2FF | rezerwować | - | - |
1D300 | 1D35F | Najwyższe tajemnicze klasyczne symbole | U1D300 | zobacz Tai Xuan Jing (en) |
1D360 | 1D37F | Chińskie figurki z patyków | U1D360 | patrz Liczenie słupków |
1D380 | 1D3FF | rezerwować | - | - |
1D400 | 1K7FF | Alfanumeryczne symbole matematyczne | U1D400 | patrz Symbol matematyczny , alfabet łaciński , cyfry arabskie Arabic |
1D800 | 1DAAF | Pisanie znaków Suttona | U1D800 | zobacz Pisanie znaków |
1DAB0 | 1DFFF | rezerwować | - | - |
1E000 | 1E02F | Suplement głagolicy | U1E000 | patrz alfabet głagolicy |
1E030 | 1E0FF | rezerwować | - | - |
1E100 | 1E14F | Nyiakeng puachue hmong | U1E800 | zobacz Nyiakeng puachue hmong (en) |
1E150 | 1E2DF | rezerwować | - | - |
1E2C0 | 1E2FF | Wancho | U1E2C0 | zobacz Wancho |
1E300 | 1E7FF | rezerwować | - | - |
1E800 | 1E8DF | Błagając kikakui | U1E800 | patrz Kikakui |
1E8E0 | 1E8FF | rezerwować | - | - |
1E900 | 1E95F | Adlam | U1E900 | zobacz Alfabet adlam |
1E960 | 1ECFF | rezerwować | - | - |
1ED00 | 1ED4F | Figurki Syaqa | U1ED00 | |
1ED50 | 1ECFF | rezerwować | - | - |
1EE00 | 1EEFF | Arabskie symbole alfabetu matematycznego | U1EE00 | patrz Matematyka arabska |
1EF00 | 1EFFF | rezerwować | - | - |
1F000 | 1F02F | Kawałki madżonga | U1F000 | zobacz Mahjong |
1F030 | 1F09F | Domino | U1F030 | zobacz Dominos |
1F0A0 | 1F0FF | Grać w karty | U1F0A0 | zobacz Karty do gry |
1F100 | 1F1FF | Dodatek alfanumeryczny w kółko | U1F100 | patrz ARIB STD-B24 (en) |
1F200 | 1F2FF | Zakreślony dodatek ideograficzny | U1F200 | patrz ARIB STD-B24 (en) |
1F300 | 1F5FF | Różne symbole i piktogramy | U1F300 | patrz Piktogram , Emoji |
1F600 | 1F64F | Emotikony | U1F600 | zobacz Emotikon , Emoji |
1F650 | 1F67F | Kaseta ozdobna | U1F650 | zobacz Skrzydła |
1F680 | 1F6FF | Symbole transportowe i kartograficzne | U1F680 | patrz Transport , Kartografia , Emoji |
1F700 | 1F77F | Symbole alchemiczne | U1F700 | zobacz Alchemia |
1F780 | 1F7FF | Rozszerzone kształty geometryczne | U1F780 | zobacz kształt geometryczny |
1F800 | 1F8FF | Uzupełnienie strzałek C | U1F800 | patrz strzałka |
1F900 | 1F9FF | Dodatkowe symbole i piktogramy | U1F900 | patrz Piktogram , Emotikon , Emoji |
1FA00 | 1FA6F | rezerwować | - | - |
1FA70 | 1FAFF | Symbole i piktogramy rozszerzone-A- | U1FA70 | patrz Piktogram , Emoji |
1FB00 | 1FFFF | rezerwować | - | - |
Punkty kodowe | Oficjalna nazwa bloku | Dowiedz się więcej | |
---|---|---|---|
Początek | Koniec | ||
20 000 | 2A6DF | CJC Unified Ideograms Supplement B ( Część 1 ) ( Część 2 ) ( Część 3 ) ( Część 4 ) ( Część 5 ) ( Część 6 ) ( Część 7 ) ( Część 8 ) ( Część 9 ) ( Część 10 ) ( Część 11 ) |
zobacz chiński, japoński i koreański |
2A6E0 | 2A6FF | rezerwować | - |
2A700 | 2B73F | Suplement C do ujednoliconych ideogramów CJC ( Część 1 ) ( Część 2 ) |
zobacz chiński, japoński i koreański |
2B740 | 2B81F | Suplement D do ujednoliconych ideogramów CJC | zobacz chiński, japoński i koreański |
2B820 | 2CEAF | Suplement E do ujednoliconych ideogramów CJC | zobacz chiński, japoński i koreański |
2CEB0 | 2EBEF | Uzupełnienie F do ujednoliconych ideogramów CJC | zobacz chiński, japoński i koreański |
2EBF0 | 2F7FF | rezerwować | - |
2F800 | 2FA1F | Dodatek Ideogramy zgodności CJC | zobacz chiński, japoński i koreański |
2FA20 | 2FFFF | rezerwować | - |
Punkty kodowe | Oficjalna nazwa bloku | Dowiedz się więcej | |
---|---|---|---|
Początek | Koniec | ||
30 000 | 3FFFF |
Zarezerwowane ( Część 1 ) ( Część 2 ) ( Część 3 ) ( Część 4 ) ( Część 5 ) ( Część 6 ) ( Część 7 ) ( Część 8 ) ( Część 9 ) ( Część 10 ) ( Część 11 ) ( Część 12 ) ( Część 13 ) ( Część 14 ) ( Część 15 ) ( Część 16 ) ( Część 17 ) |
Plan 3 |
40 000 | 4FFFF |
Zarezerwowane ( Część 1 ) ( Część 2 ) ( Część 3 ) ( Część 4 ) ( Część 5 ) ( Część 6 ) ( Część 7 ) ( Część 8 ) ( Część 9 ) ( Część 10 ) ( Część 11 ) ( Część 12 ) ( Część 13 ) ( Część 14 ) ( Część 15 ) ( Część 16 ) ( Część 17 ) |
Plan 4 |
50 000 | 5FFFF |
Zarezerwowane ( Część 1 ) ( Część 2 ) ( Część 3 ) ( Część 4 ) ( Część 5 ) ( Część 6 ) ( Część 7 ) ( Część 8 ) ( Część 9 ) ( Część 10 ) ( Część 11 ) ( Część 12 ) ( Część 13 ) ( Część 14 ) ( Część 15 ) ( Część 16 ) ( Część 17 ) |
Plan 5 |
60 000 | 6FFFF |
Zarezerwowane ( Część 1 ) ( Część 2 ) ( Część 3 ) ( Część 4 ) ( Część 5 ) ( Część 6 ) ( Część 7 ) ( Część 8 ) ( Część 9 ) ( Część 10 ) ( Część 11 ) ( Część 12 ) ( Część 13 ) ( Część 14 ) ( Część 15 ) ( Część 16 ) ( Część 17 ) |
Plan 6 |
70 000 | 7FFFF |
Zarezerwowane ( Część 1 ) ( Część 2 ) ( Część 3 ) ( Część 4 ) ( Część 5 ) ( Część 6 ) ( Część 7 ) ( Część 8 ) ( Część 9 ) ( Część 10 ) ( Część 11 ) ( Część 12 ) ( Część 13 ) ( Część 14 ) ( Część 15 ) ( Część 16 ) ( Część 17 ) |
Plan 7 |
80 000 | 8FFFF |
Zarezerwowane ( Część 1 ) ( Część 2 ) ( Część 3 ) ( Część 4 ) ( Część 5 ) ( Część 6 ) ( Część 7 ) ( Część 8 ) ( Część 9 ) ( Część 10 ) ( Część 11 ) ( Część 12 ) ( Część 13 ) ( Część 14 ) ( Część 15 ) ( Część 16 ) ( Część 17 ) |
Plan 8 |
90 000 | 9FFFF |
Zarezerwowane ( Część 1 ) ( Część 2 ) ( Część 3 ) ( Część 4 ) ( Część 5 ) ( Część 6 ) ( Część 7 ) ( Część 8 ) ( Część 9 ) ( Część 10 ) ( Część 11 ) ( Część 12 ) ( Część 13 ) ( Część 14 ) ( Część 15 ) ( Część 16 ) ( Część 17 ) |
Plan 9 |
A0000 | AFFFF |
Zarezerwowane ( Część 1 ) ( Część 2 ) ( Część 3 ) ( Część 4 ) ( Część 5 ) ( Część 6 ) ( Część 7 ) ( Część 8 ) ( Część 9 ) ( Część 10 ) ( Część 11 ) ( Część 12 ) ( Część 13 ) ( Część 14 ) ( Część 15 ) ( Część 16 ) ( Część 17 ) |
Plan 10 |
B0000 | BFFFF |
Zarezerwowane ( Część 1 ) ( Część 2 ) ( Część 3 ) ( Część 4 ) ( Część 5 ) ( Część 6 ) ( Część 7 ) ( Część 8 ) ( Część 9 ) ( Część 10 ) ( Część 11 ) ( Część 12 ) ( Część 13 ) ( Część 14 ) ( Część 15 ) ( Część 16 ) ( Część 17 ) |
Plan 11 |
C0000 | CFFFF |
Zarezerwowane ( Część 1 ) ( Część 2 ) ( Część 3 ) ( Część 4 ) ( Część 5 ) ( Część 6 ) ( Część 7 ) ( Część 8 ) ( Część 9 ) ( Część 10 ) ( Część 11 ) ( Część 12 ) ( Część 13 ) ( Część 14 ) ( Część 15 ) ( Część 16 ) ( Część 17 ) |
Plan 12 |
D0000 | DFFFF |
Zarezerwowane ( Część 1 ) ( Część 2 ) ( Część 3 ) ( Część 4 ) ( Część 5 ) ( Część 6 ) ( Część 7 ) ( Część 8 ) ( Część 9 ) ( Część 10 ) ( Część 11 ) ( Część 12 ) ( Część 13 ) ( Część 14 ) ( Część 15 ) ( Część 16 ) ( Część 17 ) |
Plan 13 |
Punkty kodowe | Oficjalna nazwa bloku | Uwagi | |
---|---|---|---|
Początek | Koniec | ||
E0000 | E007F | Etykiety | |
E0080 | E00FF | rezerwować | - |
E0100 | E01EF | Uzupełnienie selektorów wariantów | |
E01F0 | EFFFF |
Zarezerwowane ( Część 1 ) ( Część 2 ) ( Część 3 ) ( Część 4 ) ( Część 5 ) ( Część 6 ) ( Część 7 ) ( Część 8 ) ( Część 9 ) ( Część 10 ) ( Część 11 ) ( Część 12 ) ( Część 13 ) ( Część 14 ) ( Część 15 ) ( Część 16 ) ( Część 17 ) |
- |
Punkty kodowe | Oficjalna nazwa bloku | Oficjalny PDF | Uwagi | |
---|---|---|---|---|
Początek | Koniec | |||
F0000 | FFFFF |
Dodatkowa strefa A do użytku prywatnego ( Część 1 ) ( Część 2 ) ( Część 3 ) ( Część 4 ) ( Część 5 ) ( Część 6 ) ( Część 7 ) ( Część 8 ) ( Część 9 ) ( Część 10 ) ( Część 11 ) ( Część 12 ) ( Część 13 ) ( Część 14 ) ( Część 15 ) ( Część 16 ) ( Część 17 ) |
UF0000 | Brak oficjalnie zdefiniowanej cechy |
100 000 | 10FFFF |
Dodatkowa strefa B do użytku prywatnego ( Część 1 ) ( Część 2 ) ( Część 3 ) ( Część 4 ) ( Część 5 ) ( Część 6 ) ( Część 7 ) ( Część 8 ) ( Część 9 ) ( Część 10 ) ( Część 11 ) ( Część 12 ) ( Część 13 ) ( Część 14 ) ( Część 15 ) ( Część 16 ) ( Część 17 ) |
U100000 | Brak oficjalnie zdefiniowanej cechy |
Obszary użytku prywatnego nie zawierają tych samych oczu między różnymi czcionkami i dlatego należy ich unikać w przypadku kodowania tekstów przeznaczonych do wymiany między systemami heterogenicznymi. Jednak te punkty kodowe do użytku prywatnego są ważne i mogą być używane w dowolnym zautomatyzowanym przetwarzaniu zgodnym ze standardami Unicode i ISO/IEC 10646 , w tym między różnymi systemami, jeśli istnieje prywatna wzajemna umowa dotycząca ich użycia.
W przypadku braku porozumienia między obiema stronami, systemy wykorzystujące te znaki mogą odrzucać zawierające je teksty, ponieważ przetwarzanie, któremu są one poddawane, nie mogłoby działać poprawnie lub powodować problemy z bezpieczeństwem; inne systemy, które nie przypisują tym znakom żadnej specjalnej funkcji, muszą z drugiej strony uznać je za ważne i zachować jako integralną część tekstów, tak jakby były symbolami graficznymi, nawet jeśli nie wiedzą, jak je wyświetlić je poprawnie.
Nieznaki są prawidłowymi punktami kodowymi, ale nie są (i nigdy nie będą) przypisane do standardowych znaków. Ich użycie w kodowaniu tekstów przesyłanych między systemami (nawet identycznych) jest zabronione, ponieważ nie można zapewnić ich kompatybilności ze znormalizowanymi uniwersalnymi formami przekształceń (m.in. UTF-8, UTF-16, UTF-32) odpowiadającymi im kodowaniem, oraz inne znormalizowane kodowania Unicode i zgodnych z normą ISO / IEC 10646 ( BOCU -1, SCSU , różnych wersjach chińskiego standardu GB 18030 , itp ). Jednak niektóre systemy generują je i wykorzystują lokalnie, ale do przetwarzania stricte wewnętrznego, mającego na celu ułatwienie implementacji algorytmów przetwarzania tekstu z wykorzystaniem innych znormalizowanych znaków.
Wśród tych ostatnich znaków niebędących znakami są ważne punkty kodowe zarezerwowane dla półstref (prywatnych lub nie). Tych punktów kodowych nie można używać pojedynczo do kodowania znaku. Są one używane tylko dla uniwersalnej formy transformacji UTF-16 (i odpowiednich schematów kodowania) do reprezentowania w dwóch punktach kodowych (po 16 bitach każdy) ważnych punktów kodowych w jednej z 16 komplementarnych płaszczyzn (pewne kombinacje punktów kodowych odpowiadają prawidłowym znakom plany te, standardowe lub prywatne, inne kombinacje mogą nie mieć żadnego ważnego charakteru, ponieważ odpowiadałyby nie-znakom tych planów uzupełniających, a zatem są zabronione w tekstach zgodnych ze standardem).
Inne wolne obszary (nieprzypisane do znormalizowanego nazwanego bloku lub punkty kodowe pozostawione wolne i zarezerwowane w istniejących nazwanych blokach) są zarezerwowane do wykorzystania w przyszłości w przyszłych wersjach Unicode i ISO/IEC 10646 , ale są ważne. Każdy system zajmujący się tekstami zawierającymi te zastrzeżone punkty kodowe musi je akceptować bez ich filtrowania. Unicode definiuje domyślne właściwości dla hipotetycznych odpowiadających znaków, aby zachować zgodność systemów (zgodnych ze standardem Unicode) z przyszłymi zgodnymi tekstami, które je zawierają. Żadna zgodna aplikacja nie powinna przypisywać im specjalnego charakteru lub semantyki (do tego celu przeznaczone są obszary prywatne).