Robim indexer FTP serverov pre internatnu siet, a vsetko uz funguje, az na kodovanie nazvov suborov a adresarov. Ako vzdy, aj tu je problem s diakritikou. Ja mam vsetko v UTF-8 (zdrojove subory, databazu, html vystup, aj hlavicky posielam spravne), no vypis z FTP servera je v akomsi divnom kodovani, nie je to ani ISO-8859-1, ani cp1250, ani cp1252, vid priloha.
Vypis obsahu FTP servera ziskavam pomocou prikazu LIST -R. To, co posle, spracujem a prezeniem cez utf8_encode a ulozim do databazy. Ked tam nebolo utf8_encode, tak sa retazce na miestach s diakritikou proste odsekli.
Samozrejme, ked som skusal ine kodovania (kt. som hore vypisal), tak som utf8_encode dal prec, no robilo to haluze aj potom (aj ked trochu ine). Tie ostatne kodovania som skusal pomocou query db napriklad "set names 'cp1250'".
Googlil som dlho, no zda sa, ze ziadny standard v kodovani listingu obsahu FTP neexistuje. Na jednej stranke som sa docital, ze by malo stacit poslat prikaz "OPTS UTF8 ON", ale server, s ktorym to testujem, sa tvari, ze taky prikaz nepozna. Ani nastavenie rezimu na binary (MODE I) nepomohlo. Server sa identifikuje ako "ApoCalliPse FTP", no neviem, podla googlu ani neexistuje.
Vie niekto, ake moznosti mi este ostavaju? Rad by som tu diakritiku rozchodil.
FTP: kodovanie listingu
-
Mek
Addict
- Príspevky: 4661
- Registrovaný: 23 mar 2005, 23:00
- Bydlisko: ZA <-> TN
- Kontaktovať používateľa:
...hm, naozaj? Ako som pisal, nejak som ten standard nenasiel... a to, co server poslal, UTF-8 isto nebolo... inac pripojil som sa aj cez ssh na server, kde tento moj skript bezi, a odtial som sa pripojil cez ftp program na ten ftp server, a po vypise niektore znaky s diakritikou chybali, ine boli v poriadku...
Tá norma je napr. aj tu: http://filezilla-project.org/specs/rfc2640.txt. Inak problém môže spôsobovať aj znaková sada, ktorá sa používa pri súborovom systéme.
-
Mek
Addict
- Príspevky: 4661
- Registrovaný: 23 mar 2005, 23:00
- Bydlisko: ZA <-> TN
- Kontaktovať používateľa:
aha, no kuknem si tu specifikaciu, ci nieco nevyskumam
//autoeditácia príspevku ( 27 Dec 2008, 10:34 )
tak som vyskumal to, ze aby som mohol pouzit OPTS UTF8 ON, tak v zozname FEAT musi byt "UTF8" a to nie je, cize ten server UTF8 nepodporuje. To je dost blbe... ostava mi asi len skusit sa pohrat s iconv
//autoeditácia príspevku ( 27 Dec 2008, 10:34 )
tak som vyskumal to, ze aby som mohol pouzit OPTS UTF8 ON, tak v zozname FEAT musi byt "UTF8" a to nie je, cize ten server UTF8 nepodporuje. To je dost blbe... ostava mi asi len skusit sa pohrat s iconv
OPTS UTF8 ON nie je štandardný spôsob. Ak server podporuje RFC 2640, tak sa to posielanie textov v UTF-8 nemusí zapínať (vlastne sa ani nedá zapínať).
Je otázne, čo sa dá urobiť v prípade, že síce posiela text v (nejakom) 8 bitovom kódovaní, ale neposkytuje informácie, v akom kódovaní to vlastne je.
Je otázne, čo sa dá urobiť v prípade, že síce posiela text v (nejakom) 8 bitovom kódovaní, ale neposkytuje informácie, v akom kódovaní to vlastne je.