Windows‑1250
Windows‑1250 (czasem określany jako CP1250) jest jedną z 8‑bitowych stron kodowych opracowanych przez firmę Microsoft w celu obsługi języków środkowoeuropejskich w systemie Microsoft Windows. Kodowanie to zostało wprowadzone w 1998 roku jako rozszerzenie standardu ISO/IEC 8859‑2, umożliwiając prawidłowe wyświetlanie znaków diakrytycznych używanych w językach takich jak polski, czeski, słowacki, słoweński, węgierski, rumuński i litewski.
Historia
W początkowych wersjach systemu Windows (Windows 3.1 oraz Windows 95) zastosowano różne strony kodowe zależne od ustawień regionalnych. Wraz ze wzrostem znaczenia komputerów osobistych w Europie Środkowej Microsoft opracował specjalną stronę kodową, aby ujednolicić obsługę znaków w tych językach. Pierwsze wersje Windows‑1250 pojawiły się wraz z Windows 98 oraz Windows 2000 i od tego czasu stały się domyślną stroną kodową dla większości aplikacji działających w środowisku Windows w regionie środkowoeuropejskim.
Charakterystyka techniczna
- Rozmiar kodowania: 8 bitów (256 znaków).
- Zakres kodów 0‑127: zgodny z ASCII.
- Zakres kodów 128‑255: zawiera znaki specyficzne dla języków środkowoeuropejskich, w tym litery diakrytyczne: Ą, Ć, Ę, Ł, Ń, Ó, Ś, Ź, Ż oraz ich odpowiedniki w językach czeskim, słowackim i innych.
- Nie obejmuje niektórych znaków używanych w języku bułgarskim i macedońskim (tam stosuje się Windows‑1251).
Mapa znaków
Poniżej przedstawiono wybrane znaki dostępne w kodowaniu Windows‑1250 wraz z ich kodami szesnastkowymi:
| Kod (hex) | Symbol | Opis |
|---|---|---|
| 0xA0 | Spacja niełamliwa (NBSP) | |
| 0xA1 | Ą | Litera A z ogonkiem (polski) |
| 0xA2 | ˘ | Krótki znak diakrytyczny (used in Czech/Slovak) |
| 0xA3 | Ł | Litera L z ukośnikiem (polski) |
| 0xA5 | Ś | Litera S ze streką (polski) |
| 0xA6 | Ť | Litera T z akcentem (czeski) |
| 0xA9 | Ź | Litera Z z akcentem (polski) |
| 0xAB | Ž | Litera Z z haakiem (czeski/ słowacki) |
| 0xB9 | ą | Mała litera a z ogonkiem (polski) |
| 0xBA | Ĺ | Litera L z akcentem (słowacki) |
| 0xBC | ł | Mała litera l z ukośnikiem (polski) |
| 0xC1 | Á | Łaciński kapitalny A z akcentem (używane w językach słowiańskich) |
| 0xD1 | Ń | Litera N z ogonkiem (polski) |
| 0xD3 | Ó | Litera O z akcentem (polski) |
| 0xDC | Ü | U z umlautem (używane w węgierskim) |
| 0xE1 | á | Mała litera a z akcentem |
| 0xE9 | é | Mała litera e z akcentem |
| 0xF1 | ń | Mała litera n z ogonkiem (polski) |
Zastosowania
Windows‑1250 był szeroko wykorzystywany w następujących obszarach:
- Systemy operacyjne Windows w wersjach od Windows 95 do Windows XP (domyślnie w ustawieniach regionalnych dla Polski, Czech, Słowacji i pokrewnych).
- Aplikacje biurowe, takie jak Microsoft Office, które w tamtym okresie zapisywały dokumenty w domyślnej stronie kodowej systemu.
- Strony internetowe i serwery WWW działające przed powszechnym przyjęciem Unicode. W nagłówkach HTML stosowano deklarację
charset=windows-1250. - Systemy bazodanowe (np. Microsoft SQL Server) umożliwiające przechowywanie tekstu w tej stronie kodowej.
Kompatybilność i migracja
Wraz z rozwojem Unicode i formatów UTF‑8 popularność Windows‑1250 stopniowo maleje. Większość nowoczesnych aplikacji i systemów operacyjnych obsługuje Unicode jako jedyny standard, co upraszcza wymianę danych między różnymi językami i platformami. Migracja z Windows‑1250 do Unicode zazwyczaj wymaga konwersji przy użyciu narzędzi takich jak iconv lub bibliotek ICU. Podczas takiej konwersji trzeba zwrócić uwagę na następujące problemy:
- Utrata znaków nieodpowiadających żadnemu punktowi kodowemu w Unicode (rzadko, ale zdarza się przy własnych rozszerzeniach).
- Różnice w interpretacji niektórych znaków podobnych graficznie, np.
Ĺ(U+0139) vs.Ł(U+0141).
Porównanie z innymi stronami kodowymi
Poniższa tabela zestawia Windows‑1250 z najważniejszymi kodowaniami używanymi w Europie Środkowej i Wschodniej:
| Kodowanie | Regiony | Podstawowy zestaw znaków | Domyślne w Windows |
|---|---|---|---|
| Windows‑1250 | Polska, Czechy, Słowacja, Węgry, Słowenia, Rumunia, Litwa | Litery diakrytyczne centralnej Europy | Tak (od Windows 95) |
| Windows‑1251 | Rosja, Ukraina, Białoruś, Bułgaria, Macedonia | Cyrylica | Tak (od Windows 95) |
| ISO/IEC 8859‑2 | Środkowa Europa (bez Węgier) | Podobny zestaw do Windows‑1250, ale brak niektórych znaków węgierskich | Nie |
| UTF‑8 | Globalny | Pełny zestaw Unicode | Standard od Windows XP SP2 i nowszych |
Obecny status
Chociaż Windows‑1250 nie jest już domyślnym kodowaniem, wciąż jest wspierany w:
- Starszych aplikacjach i systemach, które nie zostały zaktualizowane do obsługi Unicode.
- Plikach konfiguracyjnych i bazach danych migrowanych z legacy systemów.
- Niektórych środowisk programistycznych (np. w Pythonie poprzez kodowanie
cp1250).
W praktyce zaleca się używanie Unicode (UTF‑8) we wszystkich nowych projektach, aby zapewnić maksymalną kompatybilność i łatwość wymiany danych.