UTF-9 i UTF-18 – systemy kodowania unikodu, wprowadzone dokumentem RFC 4042 jako żart primaaprilisowy.
Ich specyfikację opracował Mark Crispin (wynalazca protokołu IMAP). RFC 4042 został upubliczniony 1 kwietnia 2005.
System ten miał zostać stworzony z myślą o 18- i 36-bitowych architekturach komputerów, w których obsługa systemów UTF-8 czy UTF-16 zbudowanych wokół 8-bitowych bajtów (tj. oktetów) byłaby nieefektywna obliczeniowo i pamięciowo.
Szczegóły
UTF-9 (Unicode Transformation Format-9) jest formatem kodowania znaków o zmiennej długości. Najstarszy bit każdego nonetu (tj. 9-bitowego bajtu) używany jest jako flaga kontynuacji, pozostały oktet to kod znaku w standardzie ISO-10646. Dla znaków 0x0-0xFF oznacza to pełną wsteczną kompatybilność. W UTF-9 możliwe jest zakodowanie wszystkich znaków Unikodu, więc nie ma potrzeby stosowania kodów zastępczych z przedziału U+D800 – U+DBFF
UTF-18 (Unicode Transformation Format-18) jest formatem kodowania znaków o stałej długości. Używa dwóch nonetów. Znaki z zakresu U+0000 – U+2FFFF pozostają bez zmian, zaś z zakresu U+E0000 – U+EFFFF zostają przesunięte o 0x70000, do zakresu 0x30000 – 0x3ffff. Inne wartości nie mogą być reprezentowane w UTF-18.
Znak | Kod UNICODE | kod UTF-9 (oct) | kod UTF-18 (oct) | kod UTF-8 (dla porównania) |
---|---|---|---|---|
A | U+0041 | 101 | 000101 | 101 |
Ą | U+0104 | 401 004 | 000404 | 304-204 |
가 | U+AC00 | 654 000[uwaga 1] | 126000 | 352 260 200 |
𝌌 | U+1D30C | 401 323 014 | 351414 | 360 235 214 214 |
Uwagi
- ↑ Zera nie są błędem, i nie oznaczają „końca łańcucha”.
Linki zewnętrzne
- M. Crispin , UTF-9 and UTF-18 Efficient Transformation Formats of Unicode, RFC 4042, IETF, 1 kwietnia 2005, DOI: 10.17487/RFC4042, ISSN 2070-1721, OCLC 943595667 (ang.).