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-1

Termin Definicja
ISO 8859-1

ISO 8859-1 to standard kodowania znaków obejmujący alfabet zachodnioeuropejski, bez polskich znaków diakrytycznych.

Zakres znaków i pochodzenie standardu ISO 8859-1

ISO 8859-1, zapisywany także jako ISO/IEC 8859-1 lub Latin-1, jest jednobajtowym standardem kodowania znaków przeznaczonym głównie dla języków zachodnioeuropejskich. Każdy znak tekstu zajmuje w nim jeden bajt. Wartości od 0x00 do 0x7F odpowiadają znakowi ASCII, dlatego podstawowe litery alfabetu łacińskiego, cyfry, spacje oraz typowe znaki interpunkcyjne mają takie same wartości jak w ASCII. Zakres od 0x80 do 0x9F zawiera znaki sterujące, a zakres od 0xA0 do 0xFF obejmuje dodatkowe znaki graficzne.

W standardzie znajdują się między innymi litery z akcentami używane w językach francuskim, niemieckim, hiszpańskim, portugalskim, włoskim, szwedzkim i islandzkim. Dostępne są także symbole walut, takie jak znak funta brytyjskiego, jen oraz znak centa, a także znaki typograficzne i matematyczne. ISO 8859-1 nie zawiera polskich liter: ą, ć, ę, ł, ń, ó, ś, ź i ż. Nie ma również znaku euro, ponieważ pozycje 0x80–0x9F pozostają w tym standardzie znakami sterującymi.

Różnica między bajtem a znakiem wyświetlanym na ekranie

Plik zapisany jako ISO 8859-1 nie przechowuje abstrakcyjnych liter, lecz określone wartości bajtów. Program odczytujący plik musi wiedzieć, że te wartości należy interpretować według tabeli Latin-1. Jeżeli ten sam ciąg bajtów zostanie odczytany jako UTF-8, Windows-1250 albo inne kodowanie, część znaków może zostać pokazana nieprawidłowo. Zwykłe litery ASCII często nadal wyglądają poprawnie, dlatego problem może ujawnić się dopiero przy znakach diakrytycznych lub symbolach narodowych.

Przykładowo bajt 0xE9 w ISO 8859-1 oznacza literę „é”. W UTF-8 ta litera jest zapisywana jako sekwencja dwóch bajtów: 0xC3 0xA9. Jeżeli aplikacja potraktuje dane Latin-1 jako UTF-8, może zgłosić błąd nieprawidłowej sekwencji albo zastąpić znak symbolem zastępczym. Odwrotna pomyłka również prowadzi do zniekształceń, często widocznych jako przypadkowe znaki, na przykład „é”. Taki efekt jest określany jako mojibake i wynika z niespójnej interpretacji danych, a nie z uszkodzenia samej litery.

ISO 8859-1 w plikach, stronach WWW i konwersji do Unicode

Informacja o użytym kodowaniu może być zapisana w metadanych dokumentu albo przekazana przez aplikację. W odpowiedzi HTTP spotyka się deklarację Content-Type: text/html; charset=ISO-8859-1, natomiast w dokumentach HTML kodowanie może zostać określone również przez element <meta charset="ISO-8859-1">. Deklaracja powinna odpowiadać rzeczywistym bajtom zapisanym w pliku. Samo zmienienie nazwy kodowania w nagłówku nie konwertuje treści i nie naprawia danych zapisanych wcześniej w innym standardzie.

Współczesne systemy zwykle preferują Unicode, najczęściej UTF-8, ponieważ obejmuje znacznie większy zbiór znaków i poprawnie obsługuje polskie litery. Konwersja z ISO 8859-1 do UTF-8 powinna polegać na prawidłowym odczytaniu źródłowych bajtów jako Latin-1, a następnie zapisaniu tych samych znaków w UTF-8. Operacja wykonana bez znajomości kodowania źródłowego może utrwalić błędy. Szczególnej uwagi wymagają stare pliki tekstowe, eksporty z dawnych programów, archiwa poczty oraz dane przesyłane między aplikacjami, które stosują różne wartości domyślne.

Postępowanie przy problemach z odczytem tekstu Latin-1

Diagnostykę warto rozpocząć od ustalenia, czy problem występuje w samym pliku, w programie odczytującym dane, czy dopiero podczas transmisji. Pomocne jest sprawdzenie surowych bajtów oraz porównanie ich z deklaracją kodowania. Jeżeli dokument zawiera wyłącznie znaki ASCII, różnica między ASCII a ISO 8859-1 może pozostać niewidoczna. Obecność znaków spoza ASCII pozwala natomiast zweryfikować, czy zastosowano właściwą tabelę znaków. Należy też odróżnić ISO 8859-1 od Windows-1252, ponieważ w zakresie 0x80–0x9F te standardy mają inne zastosowania.

Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów i komputerów PC, w tym diagnostyką problemów z oprogramowaniem, plikami tekstowymi oraz ustawieniami kodowania. Przy analizie takiej usterki sprawdza się między innymi źródło danych, deklaracje charset, sposób importu i eksportu oraz ustawienia programu, który wyświetla treść. Prawidłowe rozpoznanie kodowania jest konieczne przed zapisem zmian, ponieważ pochopna konwersja może zastąpić nieznane znaki i spowodować utratę części informacji.

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