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

Kodowanie a język

Termin Definicja
Kodowanie a język

Zależność kodowania od języka opisuje, jak ustawienia regionalne wpływają na sposób zapisu i odczytu znaków w bazie.

Kodowanie znaków a język danych

Kodowanie znaków określa, w jaki sposób znaki zapisane w tekście są zamieniane na wartości binarne, a następnie odtwarzane podczas odczytu. Sam język tekstu, na przykład polski, niemiecki czy japoński, nie jest kodowaniem. Język opisuje znaczenie i zestaw używanych znaków, natomiast kodowanie definiuje sposób ich reprezentacji w pliku, bazie danych, formularzu lub komunikacie przesyłanym przez sieć. Ten sam tekst może być zapisany między innymi w UTF-8, UTF-16 albo w starszym kodowaniu jednobajtowym, zależnie od zastosowanego systemu.

Ustawienia języka i regionu mogą wpływać na wybór domyślnego kodowania, sposób sortowania napisów, porównywanie wielkości liter oraz interpretację znaków narodowych. Nie oznacza to jednak, że zmiana języka systemu automatycznie naprawia błędnie zapisane dane. Jeżeli tekst został zakodowany jako jeden standard, a później odczytany jako inny, znaki mogą zostać zastąpione symbolami zastępczymi, znakami zapytania albo niezrozumiałymi ciągami. Przyczyną jest niezgodność między sposobem zapisu a sposobem dekodowania.

UTF-8, strony kodowe i polskie znaki

UTF-8 jest kodowaniem Unicode o zmiennej długości. Znaki podstawowego alfabetu łacińskiego są w nim reprezentowane pojedynczym bajtem, a wiele innych znaków wymaga dwóch, trzech lub czterech bajtów. Dzięki temu jeden standard może obsługiwać zarówno polskie litery, takie jak ą, ć, ę, ł, ń, ó, ś, ź i ż, jak i znaki używane w innych alfabetach. UTF-8 nie przechowuje informacji o języku tekstu. Informacja o tym, że dany fragment jest po polsku, może być przekazana osobno, na przykład przez ustawienie języka dokumentu albo metadane aplikacji.

Starsze kodowania, określane często jako strony kodowe, miały ograniczony zestaw znaków. W polskich środowiskach spotykano między innymi Windows-1250, ISO-8859-2 oraz Mazovia, ale nie są one wzajemnie zamienne. Bajt przypisany konkretnej wartości może oznaczać inny znak w każdej z tych stron kodowych. Jeżeli program zapisze tekst w Windows-1250, a drugi program odczyta go jako ISO-8859-2 lub UTF-8, polskie litery mogą zostać wyświetlone nieprawidłowo. Szczególnie częstym skutkiem jest pojawienie się symbolu zastępczego, gdy pierwotna informacja została już utracona podczas konwersji.

Język, sortowanie i porównywanie napisów

W bazach danych i systemach operacyjnych kodowanie odpowiada za reprezentację znaków, natomiast reguły językowe mogą być wykorzystywane do sortowania i porównywania tekstów. Takie reguły są określane między innymi jako collation, czyli zestaw zasad porządku alfabetycznego oraz traktowania wielkości liter i znaków diakrytycznych. Dwa napisy mogą być uznane za równe przy porównaniu niewrażliwym na wielkość liter, ale różne przy porównaniu binarnym. Podobnie kolejność liter w sortowaniu zależy od przyjętych reguł językowych, a nie wyłącznie od wartości bajtów.

Problemy pojawiają się wtedy, gdy poszczególne warstwy aplikacji mają różne ustawienia. Plik źródłowy może być zapisany w UTF-8, formularz internetowy może wysyłać dane w innym kodowaniu, połączenie z bazą może deklarować jeszcze inny zestaw znaków, a program wyświetlający wynik może błędnie interpretować otrzymane bajty. Przy analizie należy sprawdzić kodowanie pliku, deklarację dokumentu, parametry połączenia, typ kolumny tekstowej oraz reguły porównywania. Pomocne jest porównanie tego samego tekstu przed zapisem, po zapisie i po odczycie. Jeżeli uszkodzenie występuje już w danych źródłowych, zmiana czcionki lub ustawień regionalnych nie przywróci brakujących znaków.

Sprawdzanie zgodności kodowania w praktyce serwisowej

Diagnostyka powinna rozpocząć się od ustalenia, na którym etapie dochodzi do błędu: podczas wpisywania, zapisu, przesyłania, importu czy wyświetlania. Warto użyć tekstu testowego zawierającego polskie znaki oraz kilka znaków spoza alfabetu łacińskiego. Następnie należy sprawdzić, czy tekst wygląda poprawnie w aplikacji źródłowej, w zapisanym pliku i w programie docelowym. Istotne jest także rozróżnienie między błędem kodowania a problemem z czcionką. Brak glifu w czcionce może powodować puste pole lub prostokąt, ale nie zmienia bajtów zapisanych w pliku.

W przypadku dokumentów tekstowych można przeanalizować ich deklarację kodowania i otworzyć kopię w programie pozwalającym wybrać konkretny standard. Przy konwersji należy zachować kopię oryginału, ponieważ wielokrotne otwieranie i zapisywanie pliku z błędnym ustawieniem może trwale zamienić znaki na znaki zapytania. W aplikacjach należy kontrolować jednolitość ustawień między systemem, przeglądarką, edytorem, bazą i sterownikiem połączenia. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów i komputerów PC, w tym diagnozowaniem problemów z oprogramowaniem, które powodują nieprawidłowe wyświetlanie lub zapisywanie polskich znaków.

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