Windows‑1255
Windows‑1255 (czasami określany jako cp1255) jest jednobajtowym zestawem znaków opracowanym przez firmę Microsoft w celu obsługi języka hebrajskiego w systemach operacyjnych Windows. Został wprowadzony w latach 1995 jako część rodziny kodowań Windows‑125x, które zastąpiły starsze zestawy znaków z serii ISO‑8859 w wielu zastosowaniach komercyjnych.
Historia
W początkowych latach rozwoju komputerów osobistych w regionach, w których używa się alfabetu hebrajskiego, dominowały kodowania ISO‑8859‑8 oraz DOS‑862. Microsoft, dążąc do unifikacji obsługi wielu języków w ramach jednego systemu, opracował własny zestaw znaków, który miał lepiej współpracować z systemem Windows i zapewniać wsparcie dla dodatkowych znaków typograficznych oraz znaków diakrytycznych używanych w nowoczesnym hebrajskim.
Budowa kodowania
Windows‑1255 jest kodowaniem jednowybajtowym, co oznacza, że każdy znak jest reprezentowany przez jeden bajt (0‑255). Pierwsze 128 kodów (0‑127) odpowiadają standardowemu zestawowi ASCII, a zakres 128‑255 został przydzielony dla znaków charakterystycznych dla języka hebrajskiego oraz kilku symboli specjalnych.
Kluczowe elementy zestawu:
- Znaki hebrajskie (U+0590‑U+05FF) – 27 liter podstawowych oraz dodatkowe znaki diakrytyczne.
- Znaki interpunkcyjne i symbole matematyczne (np. U+203E –
OVERLINE). - Symbol waluty
₪(shekel izraelski – U+20AA). - Znaki graficzne używane w starych aplikacjach Windows (np. ¢, £, ¥).
Mapa kodowa
Poniżej przedstawiono skróconą tabelę mapowania bajtów 0x80‑0xFF na ich odpowiedniki w Unicode:
80 – € 81 – 82 – ‚ 83 – ƒ 84 – „ 85 – … 86 – † 87 – ‡
88 – ˆ 89 – ‰ 8A – Š 8B – ‹ 8C – Œ 8D – 8E – Ž 8F –
90 – 91 – ‘ 92 – ’ 93 – “ 94 – ” 95 – • 96 – – 97 – —
98 – ˜ 99 – ™ 9A – š 9B – › 9C – œ 9D – 9E – ž 9F – Ÿ
A0 – A1 – ¡ A2 – ¢ A3 – £ A4 – ¤ A5 – ¥ A6 – ¦ A7 – §
A8 – ¨ A9 – © AA – ª AB – « AC – ¬ AD – AE – ® AF – ¯
B0 – ° B1 – ± B2 – ² B3 – ³ B4 – ´ B5 – µ B6 – ¶ B7 – ·
B8 – ¸ B9 – ¹ BA – º BB – » BC – ¼ BD – ½ BE – ¾ BF – ¿
C0 – א C1 – ב C2 – ג C3 – ד C4 – ה C5 – ו C6 – ז C7 – ח
C8 – ט C9 – י CA – ך CB – כ CC – ל CD – ם CE – מ CF – נ
D0 – ף D1 – פ D2 – ץ D3 – צ D4 – ק D5 – ר D6 – ש D7 – ת
D8 – ך D9 – ן DA – ף DB – ץ DC – – DD – – DE – – DF – –
E0 – à E1 – á E2 – â E3 – ã E4 – ä E5 – å E6 – æ E7 – ç
E8 – è E9 – é EA – ê EB – ë EC – ì ED – í EE – î EF – ï
F0 – ð F1 – ń F2 – ó F3 – ô F4 – õ F5 – ö F6 – ø F7 – ù
F8 – ú F9 – û FA – ü FB – ý FC – þ FD – ÿ FE – Ÿ FF –
Porównanie z innymi kodowaniami
W stosunku do ISO‑8859‑8, Windows‑1255 wprowadza następujące różnice:
- Dodanie znaku
₪(U+20AA). - Wprowadzenie znaków typograficznych typowych dla języka angielskiego (np. cudzysłowy „smart quotes”).
- Zamiana kilku pozycji kontrolnych na znaki graficzne używane w środowisku Windows.
W przeciwieństwie do UTF‑8 i innych zmiennobajtowych kodowań Unicode, Windows‑1255 nie obsługuje znaków spoza zakresu hebrajskiego i podstawowego zestawu łacińskiego, co ogranicza jego zastosowanie w nowoczesnych aplikacjach wielojęzycznych.
Wykorzystanie i wsparcie
Choć w przeszłości Windows‑1255 był szeroko wykorzystywany w aplikacjach biurowych, przeglądarkach internetowych oraz w systemach operacyjnych Microsoft, od początku 2010 roku jego znaczenie systematycznie maleje na rzecz UTF‑8. Niemniej jednak wciąż można spotkać to kodowanie w:
- Starszych bazach danych i systemach legacy.
- Plikach konfiguracyjnych oraz raportach generowanych przez oprogramowanie, które nie przeszło na Unicode.
- Niektórych systemach pocztowych obsługujących starsze nagłówki wiadomości e‑mail.
Konwersja
Współczesne języki programowania i biblioteki (np. Python, Java, .NET) oferują wbudowane mapowanie cp1255 ↔ UTF‑8. Przykładowo, w Pythonie konwersja odbywa się następująco:
bytes_data = b'\xe0\xe1\xe2' # ciąg w Windows‑1255
unicode_str = bytes_data.decode('cp1255')
utf8_data = unicode_str.encode('utf-8')
Takie mechanizmy zapewniają płynne przejście między starszymi systemami a nowoczesnymi aplikacjami opartymi na Unicode.