sshfs EBCDIC a ASCII
Domanda
quello che voglio fare è quello di essere in grado di montare tramite sshfs alcuni file sul mainframe tramite USS sul mio PC locale. Posso farlo, ma sshfs doesnt fare direttamente dalla conversione da EBCDIC a ASCII / unicode. C'è qualche flag che posso impostare.
Alternativly, qualcuno sa di una libreria che fa EBCDIC alle conversioni ASCII modo che io possa aggiungere al sshfs?
Saluti
Mark
Soluzione
Attenzione però che la conversione charset trasparente è un gioco molto pericoloso. Sei assolutamente sicuro che si non letto nulla, ma i file EBCDIC tramite SSHFS? Che cosa succede se ci sono dati binari?
Alcuni sistemi utilizzati conversioni trasparenti in passato:
- la famigerata "modalità ASCII" di FTP, che incasinato molti download binari
- il filesystem vfat in Linux, che osserva: ".! Programmi che lseeks calcolati non sarà come la conversione di testo in-kernel Molte persone hanno avuto i loro dati rovinate da questa traduzione Beware"
Quindi consigliamo vivamente di essere a conoscenza delle conseguenze.
Perché non usare usare un editor in grado di gestire EBCDIC? Vim esempio può farlo (se è compilato in).
Altri suggerimenti
Ci sono diverse librerie per la conversione set di caratteri - iconv (normalmente parte della libreria C, vedi ad esempio iconv_open
) e GNU ricodificare venire in mente.
So che un sacco di tempo è passato dal momento che la domanda iniziale, ma lascio le info qui:
Ho scritto una patch per sshfs che aggiunge la conversione automatica tra ASCII e EBCDIC. Si può trovare qui: https://github.com/vadimshchukin/sshfs-ebcdic
La patch aggiunge l'opzione della riga di comando "-t" che definisce espressione regolare per i file che devono essere convertiti. Per esempio sshfs -t".*"
definisce la conversione per tutti i file.
Ho dovuto "hard-code" la tabella di conversione in quanto ci sono diversi "sapori" di EBCDIC e iconv non ha tradotto il testo tra ASCII come EBCDIC sul mio sistema, se necessario. Il vantaggio è che qualcuno possa cambiare facilmente che tabella di traduzione, se necessario.
Tra l'altro ho scritto la stessa patch per vittoria-sshfs.