> Nikt nie zmienił. Ty kazałeś programowi inaczej to traktować. > Chcesz, żeby nazwa plików była traktowana tak samo niezależnie od > używanego języka? Użyj odpowiedniego locale. Np. pl_PL.utf8 i es_ES.utf8 > (oczywiście musisz je mieć zdefiniowane).
I tak właśnie robię. A konkretnie bez sufiksów .utf8, to się załatwia odpowiednim parametrem do localedef. > System można dostosować do środowiska (parametry iocharset i codepage > w fstab, czy smb.conf) i na odwrót. Zgoda. Problem w tym, że nie określając żadnego standardu w systemie (na dzień dzisiejszy tak jest) prowadzi się do tego, że każdy program musi się znać na locale. Krótka lista programów, które się gubią (testowane na $(locale -k charmap)==UTF-8): - mc (ramki się krzaczą na nazwach plików z pliterkami) - linia poleceń basha (backspace na znaku kilkubajtowym) - open(argv[1],O_RDONLY)!=-1 || perror(argv[1]); (walą się krzaczki jeśli kodowanie konsoli != kodowanie nazw plików) > Znaki i kodowania pojawiają się dopiero w środowisku z interfejsem > użytkownika i tam należy to rozwiązać. I w shellowych globach :P. Zresztą, żeby rozwiązanie było skuteczne, musiałoby być wszędzie jednakowe. A jest: - w glib-1: kodowanie locale - w glib-2.0: UTF-8 lub locale wg. G_BROKEN_FILENAMES - w glib-2.3: dowolne wg. G_FILENAME_ENCODING lub j.w. - w mount: wg. -oiocharset=... - w KDE: nie wiem, ale pewnie jakoś po swojemu. - w sh: kodowanie locale, pod warunkiem że 1 znak<->1 bajt Każda próba rozwiązania tego galimatiasu dla przypadku dowolnego FILENAME_ENCODING prowadziłaby do patchowania 3/4 programów. Stąd pytanie: czy ktoś widzi jakieś przeciwwskazania (jakie?), żeby jako standard przyjąć kodowanie_nazw == kodowanie_locale == UTF-8? Podobno w RedHacie były z tym jakieś problemy (jakie?). Przy tym założeniu możnaby popatchować co trzeba (domyślny iocharset dla mounta, znaczenie pytajnika w shellu i co się jeszcze nawinie). Czekam na argumenty przeciw (nie wątpię, że będą). Oczywiście (w imię niepsucia) każda taka zmiana musiałaby spełniać warunek, że nie zmienia działania dla locale!=UTF-8 (być może poza uzasadnionymi wyjątkami). Wtedy osoby przyzwyczajone do ISO 8859-2 mogłyby na własną odpowiedzialność działać po staremu (ryzykując problemy jak ten, który zaczął niniejszy wątek). Swoją drogą nie za bardzo wiem, do czego służyć ma kodowanie "locale". Zdaje się, że w założeniu autorów standardu każdy tekst z jakim się program mógłby spotkać na danym systemie miał być w tym samym kodowaniu. Założenie piękne, ale dla epoki sprzed MIME :) Chyba można przyjąć przynajmniej, że konsola jest kodowana w kodowaniu locale, chociaż też bywa z tym różnie (np. w gnome-terminal można to ustawić). Pytanie: Czy ktoś widzi jakieś przeciwwskazania (jakie?), żeby -- +----------------------------------------------------------------------+ | Paweł Sakowski <[EMAIL PROTECTED]> Never trust a man | | who can count up to 1023 on his fingers. | +----------------------------------------------------------------------+
signature.asc
Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e=2E?=
