FTP: kodovanie listingu

Programovacie jazyky, rady, poradňa...
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

FTP: kodovanie listingu

Príspevok od používateľa Mek »

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.
Prílohy
untitled.PNG
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Podľa normy by mal ftp server poslať odpoveď, ktorá obsahuje len 7 bitové ASCII znaky. Ak server podporuje posielanie aj znakov s diakritikou... tak by mal odpoveď poslať v kódovaní UTF-8.
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Príspevok od používateľa Mek »

...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...
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

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
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Príspevok od používateľa Mek »

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 :?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

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.
Napísať odpoveď