| Termin | Definicja |
|---|---|
| Różnice domyślnego sortowania | Różnice domyślnego sortowania między instalacjami wynikają z odmiennych ustawień regionalnych wybranych przy instalacji. Skąd biorą się różnice w domyślnym sortowaniuDomyślne sortowanie określa kolejność rekordów lub elementów wtedy, gdy zapytanie, program albo menedżer plików nie wskazuje własnej reguły porównywania. Wynik nie musi być identyczny na dwóch komputerach, nawet jeżeli znajdują się na nich te same dane i ta sama wersja aplikacji. Jedną z przyczyn są ustawienia regionalne wybrane podczas instalacji systemu operacyjnego, środowiska programistycznego albo konkretnego programu. Ustawienia te mogą określać język, kraj, kodowanie, sposób porównywania liter oraz reguły sortowania właściwe dla danego języka. W praktyce ustawienia regionalne wpływają przede wszystkim na tzw. kolację, czyli zestaw zasad ustalających, jak porównywane są znaki tekstowe. Kolacja może rozstrzygać, czy wielkość liter ma znaczenie, czy litery z akcentami są traktowane jak ich odpowiedniki bez akcentu oraz w jakiej kolejności występują znaki charakterystyczne dla danego alfabetu. Dla przykładu kolejność słów zawierających „a”, „ą”, „A” i „Ą” może być inna w zależności od tego, czy porównanie jest czułe na wielkość liter i znaki diakrytyczne. Nie jest to przypadkowe przestawienie danych, lecz konsekwencja zastosowania innego zestawu reguł. Kolacja, Unicode i porównywanie tekstuSortowanie tekstu nie zawsze polega na prostym porównaniu numerów przypisanych znakom w Unicode. Taki porządek techniczny, nazywany często porządkiem kodowym, może układać wielkie litery przed małymi oraz umieszczać znaki narodowe w miejscu wynikającym z ich wartości kodowej. Porównanie językowe korzysta natomiast z reguł kolacji. Może ono uznawać „ó” za znak powiązany z „o”, a „Ł” umieszczać zgodnie z regułami przyjętymi dla języka polskiego, zamiast traktować wszystkie znaki wyłącznie według wartości kodu. Znaczenie ma również normalizacja Unicode. Ten sam widoczny znak może być zapisany jako pojedynczy znak złożony albo jako litera podstawowa i osobny znak łączący, na przykład akcent. Jeżeli aplikacja lub silnik porównuje takie ciągi bez odpowiedniej normalizacji, dwa wizualnie podobne napisy mogą otrzymać różną kolejność. Różnice mogą pojawić się także przy porównywaniu spacji, znaków interpunkcyjnych, cyfr zapisanych jako tekst oraz wartości pustych. Dlatego kolejność widoczna w tabeli nie zawsze wynika wyłącznie z alfabetu; zależy od pełnej implementacji porównywania znaków w używanym programie. Przykłady skutków odmiennego ustawienia regionalnegoRóżnica jest łatwa do zauważenia w listach nazwisk, nazw plików, produktów lub miejscowości. Dwa komputery mogą wyświetlić te same pozycje w innej kolejności, gdy jeden stosuje sortowanie językowe, a drugi porządek kodowy. Podobny efekt występuje, gdy jedna konfiguracja ignoruje wielkość liter, a druga traktuje „ABC” i „abc” jako różne wartości. Jeżeli kilka elementów jest uznawanych za równorzędne, program może dodatkowo użyć kolejności wczytania, identyfikatora rekordu albo wewnętrznego porządku indeksu. Wtedy rezultat może zmieniać się także po ponownym uruchomieniu lub po przebudowie danych. Odmienne ustawienia regionalne mogą wpływać na działanie filtrów, wyszukiwania i indeksów tekstowych. Jeżeli aplikacja zapisuje dane według jednej kolacji, a później odczytuje je w środowisku z inną kolacją, zakres wyszukiwania lub kolejność wyników może różnić się od oczekiwanej. Szczególnej uwagi wymagają raporty eksportowane do plików, porównywanie list pochodzących z różnych stanowisk oraz testy automatyczne sprawdzające kolejność elementów. Test, który zakłada konkretny porządek bez jawnego wskazania reguły sortowania, może przechodzić na jednym komputerze i kończyć się błędem na innym. Jak ustalić oczekiwaną kolejność wynikówNajpierw należy ustalić, jaki porządek jest wymagany: językowy, kodowy, bez rozróżniania wielkości liter, z uwzględnianiem znaków diakrytycznych czy oparty na osobnym kluczu, takim jak numer lub data. Następnie warto sprawdzić ustawienia regionalne systemu, konfigurację aplikacji oraz sposób, w jaki przechowywane są napisy. W programach korzystających z bazy danych trzeba rozróżnić domyślną kolację serwera, bazy, tabeli lub kolumny od reguły sortowania określonej bezpośrednio w zapytaniu. Jawne wskazanie kolejności i dodatkowego klucza rozstrzygającego remisy ogranicza zależność wyniku od środowiska. Podczas diagnostyki przydatne jest porównanie kilku kontrolnych wartości: wielkich i małych liter, polskich znaków, znaków zapisanych w różnych postaciach Unicode, pustych wartości oraz cyfr przechowywanych jako tekst. Należy także sprawdzić, czy oba komputery używają tego samego języka interfejsu, regionu, kodowania i wersji biblioteki odpowiedzialnej za kolację. Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów, komputerów PC i ich podzespołów, a w ramach diagnostyki można przeanalizować sytuacje, w których ustawienia systemu lub aplikacji powodują niespójne wyświetlanie i sortowanie danych. |