Charset nazw plików (Re: Gnome2 =?iso-8859-2?q?- OpenDialog?=)

Paweł Sakowski pawel at sakowski.eu.org
Fri Nov 28 00:26:55 CET 2003


> > > 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 at sakowski.eu.org>            Never trust a man  |
|                            who can count up to 1023 on his fingers.  |
+----------------------------------------------------------------------+
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Ceci est une partie de message num?riquement sign?e.
URL: </mailman/pipermail/pld-devel-pl/attachments/20031128/b9521fd3/attachment.sig>


More information about the pld-devel-pl mailing list