🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.pascal
Article #92934

Re: Polskie znaki w nazwach plików (Windows) (Lazarus 0.9.28)

#92934
From: AdminOPZ
Date: Mon, 21 Dec 2009 22:25
55 lines
2931 bytes
On 21 Gru, 19:45, Terrmit <terrm...@poczta.onet.pl> wrote:
> W dniu 21.12.2009 19:15, Admin...@gmail.com pisze:
>
> > Witam,
>
> [ciach]
>
> > W wypadku polskich znaków w nazwie pliku np
> > c:\ðśą.jpg , wyrzuca "Unable to open file xxx".
> >http://www.bankfotek.pl/view/479548
>
> > Jeżeli przekazuje np c:/test.jpg , nie ma żadnych problemów...
> >[ciach]
>
> Prawdopodobnie gdzieś zostaje przeinaczona ta nazwa pliku
> na skutek nieprawidłowej konwersji kodowania znaków.
>
> Ja bym sprawdził, na przykładzie kontrolki TSavePictureDialog
> jaką nazwę będzie miał plik na dysku, gdy jako FileName
> podasz mu np. zażółć_gęślą_jaźń.jpg
>
> Może to coś rozjaśni co się dzieje z kodowaniem.
>
> Sławek

Witaj,

Problem rozwiązany, ale jak do tego doszedłem...

Męczyła mnie kwestia tej kontrolki otwierania i okazało się że to nie
w niej bezpośrednio leży błąd.

Ona zwraca nam poprawną nazwę (jak na Windows-a), ale prawdopodobnie
tj na 99% biblioteka IdMultipartFormData nie obsługuje "Windowsowego
typu znaków".


Dla testu wprowadziłem mu następujący kod:
 Stream.AddFile( 'zdjecie', 'c:\Ziółma.jpg', 'content-type_here' );

- wykonanie zakończyło się błędem, brak pliku "c:\Ziółma.jpg".

Kolejna próba, zastępując polskie znaki poprzez ich odpowiedniki ASCII

 Stream.AddFile( 'zdjecie', 'c:\Zi'+chr(243)+chr(179)+'ma.jpg',
'content-type_here' );

- Próba zakończyła się sukcesem.



W związku z powyższym rozwiązaniem okazał się następujący kod:

 zdjecie:=OpenPictureDialog1.FileName;
 zdjecie:=Utf8ToAnsi(zdjecie);
Technical Details
Message-ID: <f4a14f69-904c-4cae-b45d-1fbf08028489@h9g2000yqa.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!news.nask.org.pl!goblin1!goblin.stu.neva.ru!postnews.google.com!h9g2000yqa.googlegroups.com!not-for-mail
References: <0d51824f-13b1-4e98-bd41-023173cebda4@b2g2000yqi.googlegroups.com> <hgofr3$6g1$1@news.mm.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!news.nask.org.pl!goblin1!goblin.stu.neva.ru!postnews.google.com!h9g2000yqa.googlegroups.com!not-for-mail
From: "AdminOPZ@gmail.com" <adminopz@gmail.com>
Newsgroups: pl.comp.lang.pascal
Subject: Re: Polskie znaki w nazwach plików (Windows)
 (Lazarus 0.9.28)
Date: Mon, 21 Dec 2009 14:25:05 -0800 (PST)
Organization: http://groups.google.com
Lines: 65
Message-ID: <f4a14f69-904c-4cae-b45d-1fbf08028489@h9g2000yqa.googlegroups.com>
References: <0d51824f-13b1-4e98-bd41-023173cebda4@b2g2000yqi.googlegroups.com>  <hgofr3$6g1$1@news.mm.pl>
NNTP-Posting-Host: 89.75.215.207
Mime-Version: 1.0
X-Trace: posting.google.com 1261434305 22471 127.0.0.1 (21 Dec 2009 22:25:05 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Mon, 21 Dec 2009 22:25:05 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: h9g2000yqa.googlegroups.com; posting-host=89.75.215.207;  posting-account=XkXzfwoAAAB5MPYvlaz8MkHkcK8FUSl4
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.1.6)  Gecko/20091215 Ubuntu/9.10 (karmic) Firefox/3.5.6,gzip(gfe),gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit