Charset nazw plików (Re: Gnome2 - OpenDialog )
Paweł Sakowski
pawel w sakowski.eu.org
Pią, 28 Lis 2003, 00:26:55 CET
> > > Idąc dalej aplikacja która wymagania kodowania plików w utf-8 jest równie
> > > błędna jak wymaganie że nazwy plików mają składać się tylko z liter 'a'.
> >
> > A jak może nie wymagać żadnego kodowania? OK, np. taki grep może. Ale
> > większa aplikacja czasami będzie musiała wypisać nazwę pliku na ekranie.
> > I jak to zrobić? Przyjąć ISO 8859-(rand()%16+1)?
>
> Przyjąć locale lub to co chce użytkownik lub to co jest mu wygodne, byle
> mapowanie ciąg bajtów nazwy w to co widzi użytkownik było wzajemnie
> jednoznaczne.
Takie mapowanie jest musiałoby escapować nierozpoznane lub niedrukowalne
ciągi oktetów (w każdym powszechnie stosowanym kodowaniu są takie).
Fakt, jako workaround złego kodowania by działało (zamiast pięknych
literek krzaczory i kody w stylu \x{abcd}). Ale to żadne rozwiązanie:
trzeba zmusić programy do dogadania się z systemem plików.
> > Hej! Kto zmienił mojemu plikowi nazwę na "Pawe" do potęgi trzeciej?
>
> Nikt nie zmieniał nic. Plik się nazywa tak jak się nazywał (identyfikuje go
> ten sam ciąg bajtów) , widzisz jego nazwe w złym kodowaniu, co _nie_ powinno
> w niczym przeszkadzać w operacjach na nim.
Jak to nie powinno przeszkadzać? Wkurwia jak cholera! Pół biedy jak
gdzieś jedno ł się zamieni na ^3, ale zdarzało mi się, że samba mi
katalog podmontowała z takim zakręconym charsetem, że smbfs głupiał i
nie dawał się w ogóle dobrać do pliku. Już nie mówiąc o mieszaniu
cyrylicy i alfabetu łacińskiego. Browara dla tego kto na pierwszy rzut
oka stwierdzi co znaczy takie "˝Đá ÝŐ ÔŢÓŢÝďâ" (ciąg bajtów w ISO 8859-5
wyświetlony jako ISO 8859-2).
I będę się upierał, że "Paweł"!="Pawe^3", więc nazwa nie jest ta sama.
Jako użytkownika mnie nie interesuje w jakim charsecie są przechowywane
nazwy plików (np. UTF-16 w przypadku FAT 32). Tak samo jak nie obchodzi
mnie czy maile dostaję w quoted-printable czy Base64. Niestety, na dzień
dzisiejszy jądro Linuxa nie rozwiązuje problemu reprezentacji ścieżki
jako ciągu znaków (znak != bajt).
--
+----------------------------------------------------------------------+
| Paweł Sakowski <pawel w sakowski.eu.org> Never trust a man |
| who can count up to 1023 on his fingers. |
+----------------------------------------------------------------------+
-------------- następna część ---------
Załącznik, który nie był tekstem został usunięty...
Name: nie znany
Type: application/pgp-signature
Size: 189 bytes
Desc: Ceci est une partie de message
=?ISO-8859-1?Q?numériquement?Url : /mailman/pipermail/pld-devel-pl/attachments/20040626/b9521fd3/attachment.bin
Więcej informacji o liście dyskusyjnej pld-devel-pl