Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam,
Debian Squeeze. Moim zdaniem locale pl_PL.utf-8 źle sortuje dane. Przykład:
echo -e "ą\na\nb\nc\nć\nł\nz\nż\nź" |LC_ALL=pl_PL.utf-8 sort
daje wynik:
ą ć ł ż ź a b c z
natomiast:
echo -e "ą\na\nb\nc\nć\nł\nz\nż\nź" |LC_ALL=pl_PL sort
daje poprawnie:
a ą b c ć ł z ź ż
Czy to jest OK? Według mnie w UTF-8 także sortowanie powinno być poprawnie zrealizowane.
Pozdrawiam,
Jakub
Offline
$ echo -e "ą\na\nb\nc\nć\nł\nz\nż\nź" |LC_ALL=pl_PL.utf-8 sort a ą b c ć ł z ź ż
sort (GNU coreutils) 5.97
Offline
$ echo -e "ą\na\nb\nc\nć\nł\nz\nż\nź" |LC_ALL=pl_PL.utf-8 sort a ą b c ć ł z ź ż
$ echo -e "ą\na\nb\nc\nć\nł\nz\nż\nź" |LC_ALL=pl_PL sort a b c z ą ć ł ź ż
sort (GNU coreutils) 8.5
xD
Offline
sort --version sort (GNU coreutils) 8.5
To nie jest kwestia polecenia sort. To o coś innego innego chodzi. To samo "coś" powoduje, że postgresql źle sortuje - ma ustawione LC_COLLATE na pl_PL.UTF-8.
Tylko nie piszcie, że mam ustawić LC_COLLATE na pl_PL..
Dlaczego z UTF-8 sortuje się źle?
Offline
Przy ustawieniu LC_ALL ustawia także LC_COLLATE także u nas to działa. Najlepiej żeby sprawdził jeszcze ktoś, kto używa Squeeze'a
Offline
Heh, z Gentoo:
$ echo -e "ą\na\nb\nc\nć\nł\nz\nż\nź" |LC_ALL=pl_PL sort a ą ć b c ł ź ż z
To dopiero hardcore. ;)
Offline
thalcave napisał(-a):
Przy ustawieniu LC_ALL ustawia także LC_COLLATE także u nas to działa. Najlepiej żeby sprawdził jeszcze ktoś, kto używa Squeeze'a
Tak, to oczywiste.
Nie ma to chyba większego znaczenia czy jak to u kogoś jeszcze na Squeeze działa.
U mnie nie działa i szukam przyczyny dlaczego?
Czy to jest kwestia jakichś słowników? Gdzie jest zapisany alfabet?
Ostatnio edytowany przez kubak (2011-05-06 20:14:57)
Offline
kubak napisał(-a):
Nie ma to chyba większego znaczenia czy jak to u kogoś jeszcze na Squeeze działa.
No właśnie to ma kluczowe znaczenie do stwierdzenia, czy błąd jest w Twoim systemie czy błąd jest w Squeeze jako takim. Od tego zależy, co z tym dalej zrobić.
Offline
Minio napisał(-a):
kubak napisał(-a):
Nie ma to chyba większego znaczenia czy jak to u kogoś jeszcze na Squeeze działa.
No właśnie to ma kluczowe znaczenie do stwierdzenia, czy błąd jest w Twoim systemie czy błąd jest w Squeeze jako takim. Od tego zależy, co z tym dalej zrobić.
:-)
Mój system to Squeeze, jako taki.
Błąd jest więc w Squeeze, jako takim.
Czy Twoim zdaniem jeśli błąd występuję u jednej osoby, która ma Squeeze, to jest to błąd w jej systemie,
a jeśli u dwóch osób - to w "Squeeze jako takim"?
Poza tym widzisz powyżej kilka przypadków u których sortowanie także źle działa, w innych locele'ach.
Czegu tu jeszcze dochodzić?
Czy ktoś ma pomysł jak ten problem rozwiązać (problem sortowania w UTF8, nie powtarzalności błędu)?
Ostatnio edytowany przez kubak (2011-05-06 22:34:37)
Offline
kubiak chcemy ustalić czy to jest błąd Twojego systemu (konfiguracji, braku jakiegoś pakietu, whatever) czy w Squeeze jest już ten błąd i występuje na każdej maszynie z nim zainstalowanym.
Właściciele Squeeze prosimy o sprawdzenie!
Offline
thalcave napisał(-a):
kubiak chcemy ustalić czy to jest błąd Twojego systemu (konfiguracji, braku jakiegoś pakietu, whatever) czy w Squeeze jest już ten błąd i występuje na każdej maszynie z nim zainstalowanym.
Właściciele Squeeze prosimy o sprawdzenie!
Wiadomo przecież, że błąd nie musi występować na każdej maszynie, wystarczy, że ktoś nie ma zainstalowanego tego locale!
Widzę to tak: wykonuję polecenie sort, zgodnie ze specyfikacją tego polecania. Korzystam z niezmodyfikowanych bibliotek.
Otrzymuje zły wynik.
To wyczerpuje znamiona błędu.
Nawet jeśli występuje on tylko na moim jedynym komputerze na świecie.
Jest błąd i już.
Jak to naprawić?
Offline
Co sie dzieje jak ustawisz LANG na utf-8?
Offline
Cokolwiek bym nie robił ze zmienną LANG, jeśli LC_ALL jest na UTF8 to sortuje źle.
Sprawdziłem wszystkie przypadki.
Offline
pokaz wyniki polecen:
localedef --list-archive grep -v '^#' /etc/locale.gen dpkg -l locale md5sum /usr/share/i18n/locales/pl_PL
Offline
localedef --list-archive
en_US en_US.iso88591 en_US.utf8 pl_PL pl_PL.iso88592 pl_PL.utf8 polish
grep -v '^#' /etc/locale.gen
en_US.UTF-8 UTF-8 en_US ISO-8859-1 pl_PL ISO-8859-2 pl_PL.UTF-8 UTF-8
dpkg -l locale
Nie znaleziono pakietu pasującego do wzorca locale.
Podejrzewam, że chodziło Ci o
dpkg -l locales
Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Nazwa Wersja Opis +++-==============-==============-============================================ ii locales 2.11.2-10 Embedded GNU C Library: National Language (l
md5sum /usr/share/i18n/locales/pl_PL
db3c19524b3f483c6b93bdef5f5bd331 /usr/share/i18n/locales/pl_PL
Offline
czy problem wystepuje gdy nie ma wygenerowanych pl_PL ISO-8859-2?
Offline
Sprawdziłem, niestety, to samo, a nawet jeszcze gorzej, bo wtedy nie sortuje nawet z LC_ALL=pl_PL
Offline
wyglada na jakis dziwny bug ... sprawdzalem na dwoch squeezach - jednym aktualizowanym z lenny drugim stawianym od podstaw i sortowanie w pl_PL.utf-8 dziala tak jak nalzey sie tego spodziewac ... ale mimo to sugerowalbym zgosic bug report do paczki locales ...
Offline
A możesz mi wrzucić tu swój env?
Szczególnie interesuje mnie LANG, LANGUAGE i MM_CHARSET.
Offline
marek@lapek:~$ echo -e "ą\na\nb\nc\nć\nł\nz\nż\nź" |LC_ALL=pl_PL sort a ą ć b c ł ź ż z
debian testing
Offline
rrp@baszta:~$ env BACNET_IFACE=eth0.119 TERM=xterm SHELL=/bin/bash LC_NUMERIC=C SSH_TTY=/dev/pts/0 USER=rrp MAIL=/var/mail/rrp PATH=/usr/sbin/:/sbin/:/usr/local/bin:/usr/bin:/bin:/usr/games LC_COLLATE=C PWD=/home/rrp LANG=en_US.UTF-8 SHLVL=1 HOME=/home/rrp LOGNAME=rrp LC_CTYPE=en_US.UTF-8 LC_TIME=en_DK.UTF-8 _=/usr/bin/env
Offline
Jezu, chyba mam to!
...
Tak, kwestia ustawienia PUTTY!!!!!
Window -> Tranlation -> Recevied data assumed to be in which character set: UTF-8
Następnie ustawiłem locale na pl_PL.UTF-8 i teraz sortowanie działa. Czyli to przez to, że komendę wklejałem przez putty, które coś robiło ze znakami takiego, że się sortowanie wysypywało.
Dzięki wszystkim za pomoc!
Offline
LOL... a Ty się dziwiłeś, że staramy sprawdzić czy n innym Squeeze problem występuje :D
Offline
Myśle ze jednak to nie wina putty tylko gdzies indziej, ja test robilem na laptopie i sortowanie jest bledne
Ostatnio edytowany przez kayo (2011-05-08 23:27:00)
Offline
To znaczy u mnie jest to wina putty. Ale Wasze testy powyżej mogą sugerować, że jest więcej problemów z sortowanie i locale.
Offline