Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

ISO 8859-2

Termin Definicja
ISO 8859-2

ISO 8859-2 to standard kodowania znaków obejmujący alfabety środkowoeuropejskie, w tym pełny zestaw polskich liter.

Zakres znaków i pochodzenie ISO 8859-2

ISO 8859-2, nazywane także Latin-2, jest jednobajtowym standardem kodowania znaków przeznaczonym przede wszystkim dla języków Europy Środkowej i Wschodniej używających alfabetu łacińskiego. Standard został opublikowany przez Międzynarodową Organizację Normalizacyjną jako część serii ISO/IEC 8859, której poszczególne części definiują zestawy znaków dla różnych grup językowych. ISO 8859-2 obejmuje między innymi język polski, czeski, słowacki, węgierski, rumuński, słoweński, chorwacki i serbski zapisywany alfabetem łacińskim.

Kodowanie wykorzystuje wartości jednobajtowe, więc pojedynczy znak jest reprezentowany przez jeden bajt. W praktyce daje to 256 możliwych wartości, lecz część z nich pozostaje przeznaczona na znaki sterujące albo nie jest używana bezpośrednio jako litera. Standard zachowuje zgodność z podstawowym zakresem ASCII dla wartości od 0 do 127. Oznacza to, że wielkie i małe litery alfabetu angielskiego, cyfry, podstawowe znaki interpunkcyjne oraz znaki sterujące mają takie same wartości jak w ASCII.

Polskie litery diakrytyczne są umieszczone w rozszerzonym zakresie kodowania. Dotyczy to znaków ą, ć, ę, ł, ń, ó, ś, ź i ż oraz ich wielkich odpowiedników. ISO 8859-2 pozwala więc zapisać typowy polski tekst bez zastępowania tych znaków znakami zapytania lub uproszczonymi odpowiednikami pozbawionymi znaków diakrytycznych.

Budowa tabeli kodowej i sposób zapisu

Wartości od 0 do 127 w ISO 8859-2 odpowiadają klasycznemu zestawowi ASCII, natomiast wartości od 128 do 255 tworzą rozszerzoną część tabeli. W tej części znajdują się litery używane w językach środkowoeuropejskich, a także znaki interpunkcyjne, symbole i litery występujące w innych alfabetach łacińskich. Każdy bajt ma bezpośrednio przypisany jeden znak według tabeli standardu. Nie jest to kodowanie o zmiennej długości, dlatego długość tekstu w bajtach można obliczyć na podstawie liczby zapisanych znaków, z uwzględnieniem ewentualnych znaków spoza tabeli.

Przykładowo znak zapisany w pliku jako bajt o wartości odpowiadającej literze „ą” nie ma tej samej wartości co „ą” zapisane w UTF-8. W UTF-8 ten znak jest kodowany przy użyciu dwóch bajtów, a w ISO 8859-2 zajmuje jeden bajt. Z tego powodu ten sam ciąg bajtów może zostać wyświetlony poprawnie albo błędnie, zależnie od tego, jakie kodowanie zadeklarowano lub wybrano podczas odczytu. Jeżeli program odczyta dane ISO 8859-2 jako UTF-8, może zgłosić błąd nieprawidłowej sekwencji albo zastąpić część znaków symbolem zastępczym.

ISO 8859-2 nie zawiera wszystkich znaków używanych współcześnie w dokumentach wielojęzycznych. Nie zapewnia też miejsca dla alfabetów cyrylickich, greckich, hebrajskich ani dla wielu znaków azjatyckich. Ograniczenie do jednego zestawu znaków jest podstawową różnicą między tym standardem a Unicode. Przy zapisie tekstu zawierającego emoji, znaki matematyczne lub litery z odległych systemów pisma konieczne jest użycie innego kodowania, najczęściej jednej z reprezentacji Unicode.

ISO 8859-2 w plikach, stronach WWW i programach

Starsze systemy operacyjne, edytory tekstu, programy księgowe, aplikacje biurowe i dokumenty tworzone w Europie Środkowej często zapisywały dane właśnie w ISO 8859-2. Informacja o kodowaniu mogła być przechowywana w ustawieniach programu, w nazwie formatu pliku albo w deklaracji dokumentu. W przypadku stron internetowych deklaracja mogła znajdować się w nagłówku HTTP lub w elemencie meta określającym zestaw znaków. Brak zgodności między deklaracją a rzeczywistymi bajtami prowadził do tak zwanej kaszany kodowej, czyli wyświetlania niezrozumiałych znaków zamiast polskich liter.

Przy imporcie pliku tekstowego ważne jest rozróżnienie kodowania źródłowego i docelowego. Program konwertujący powinien najpierw zinterpretować bajty zgodnie z ISO 8859-2, a następnie zapisać znaki w wybranym standardzie, na przykład UTF-8. Samo mechaniczne zamienianie pojedynczych bajtów bez interpretacji tabeli może uszkodzić treść. Szczególnej uwagi wymagają pliki CSV, logi, eksporty z dawnych baz danych oraz dane przekazywane między aplikacjami, ponieważ format CSV zwykle nie niesie kompletnej informacji o kodowaniu.

Współczesne aplikacje internetowe najczęściej stosują UTF-8, ponieważ Unicode obejmuje znacznie większy zestaw znaków i dobrze współpracuje z wielojęzycznymi systemami. ISO 8859-2 nadal może jednak występować w archiwalnych dokumentach, starszych instalacjach programów oraz plikach tworzonych przez urządzenia lub aplikacje utrzymywane bez konwersji. Prawidłowa identyfikacja kodowania jest wtedy konieczna przed edycją i ponownym zapisaniem danych. Otwarcie takiego pliku w niewłaściwym trybie, a następnie zapis, może trwale zastąpić niepoprawnie odczytane znaki.

Rozpoznawanie i konwersja polskich znaków

Problemy z ISO 8859-2 zwykle ujawniają się jako pojedyncze błędne litery, znaki zapytania, kwadraty albo ciągi znaków pozornie pozbawione sensu. Diagnostyka powinna obejmować sprawdzenie rzeczywistego kodowania pliku, ustawień aplikacji oraz sposobu przesyłania danych. Sam wygląd tekstu nie zawsze wystarcza do pewnego rozpoznania, ponieważ krótkie pliki zawierające wyłącznie litery ASCII mogą wyglądać identycznie w kilku standardach. Wiarygodniejsze jest porównanie bajtów z tabelą kodową albo odczyt pliku przy użyciu kilku jawnie wskazanych kodowań.

Bezpieczna konwersja polega na zachowaniu kopii oryginału, otwarciu danych z wymuszonym ISO 8859-2, sprawdzeniu polskich znaków i dopiero potem zapisaniu treści w docelowym kodowaniu. Przy migracji do UTF-8 trzeba zweryfikować także nagłówki, deklaracje dokumentów, ustawienia importu oraz konfigurację aplikacji, aby odbiorca nie próbował później interpretować pliku jako ISO 8859-2. W przypadku wielu plików pomocne jest wykrywanie wzorca powtarzających się znaków, ale automatyczna detekcja nie powinna zastępować kontroli próbki danych.

Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów, komputerów PC i ich podzespołów, w tym diagnostykę problemów z oprogramowaniem oraz odczytem plików zawierających polskie znaki. W praktyce analiza może obejmować ustawienia aplikacji, sposób importu dokumentu i bezpieczną konwersję danych, jeżeli przyczyną problemu jest niezgodne kodowanie ISO 8859-2, a nie uszkodzenie samego nośnika.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę