sshfs EBCDIC в ASCII
Вопрос
что я хочу сделать, так это иметь возможность монтировать через sshfs некоторые файлы на мэйнфрейме через USS на моем локальном компьютере.Я могу это сделать, но sshfs не выполняет сразу преобразование из EBCDIC в ascii / unicode.Есть ли какие-либо флаги, которые я могу установить?
Альтернативно, кто-нибудь знает о библиотеке, которая выполняет преобразования EBCDIC в ASCII, чтобы я мог добавить в SSHFS?
Ваше здоровье
Отметка
Решение
Однако имейте в виду, что прозрачное преобразование кодировок - это очень опасная игра.Вы абсолютно уверены, что у вас получится никогда читать что-нибудь, кроме файлов EBCDIC, через SSHFS?Что делать, если есть двоичные данные?
В прошлом некоторые системы использовали прозрачные преобразования:
- печально известный "режим ASCII" FTP, который испортил многие загрузки двоичных файлов
- файловая система vfat в Linux, которая отмечает:"Программам, которые выполняют вычисляемые lseeks, не понравится преобразование текста в ядре.Несколько человек испортили свои данные из-за этого перевода.Берегись!"
Поэтому я бы настоятельно советовал осознавать последствия.
Почему бы не использовать редактор, который может обрабатывать EBCDIC?Vim , напримерможет это сделать (если оно скомпилировано в).
Другие советы
Существует несколько библиотек для преобразования набора символов — iconv (обычно это часть вашей библиотеки C;смотрите, например iconv_open
) и Перекодировать GNU приходите на ум.
Я знаю, что с момента первоначального вопроса прошло много времени, но я оставлю информацию здесь:
Я написал патч для sshfs, который добавляет автоматическое преобразование между ASCII и EBCDIC.Его можно найти здесь: https://github.com/vadimshchukin/sshfs-ebcdic
Исправление добавляет параметр командной строки "-t", который определяет регулярное выражение для файлов, которые должны быть преобразованы.Например sshfs -t".*"
определяет преобразование для всех файлов.
Мне пришлось "жестко запрограммировать" таблицу преобразования, поскольку существуют различные "вкусы" EBCDIC, а iconv в моей системе не перевел текст из ASCII в EBCDIC по мере необходимости.Преимущество здесь в том, что кто-то может легко изменить эту таблицу перевода по мере необходимости.
Кстати, я написал такой же патч для win-sshfs.