Если вы выполняете перевод ASCII-EBCDIC вне процесса передачи по FTP, я должен предположить, что вы переводите в двоичном режиме (в противном случае перевод будет выполнен снова , и ваши данные будутбыть плохим).
Если это так, то я вполне уверен, что вы сами несете ответственность за преобразование концов строк.Двоичные переводы не будут пытаться преобразовать окончания строк.Вам нужно будет разметить строки до желаемой длины и полностью удалить окончания строк перед отправкой на хост.
Например, если вы передадите этот файл:
12345
67890
вверх в двоичном режиме, используя literal site recfm=vb
, вы получите следующее (показано в редакторе ISPF с hex on
):
000001
3333300333330044444
12345DA67890DA00000
--------------------------
Вы можете видеть, что он просто передал байты как есть, в том числе CR / LF.Если вы переключитесь в режим ASCII в FTP и загрузите снова, вы получите:
000001 12345
FFFFF44444444
1234500000000
--------------------
000002 67890
FFFFF44444444
6789000000000
--------------------
Здесь символы были преобразованы в правильные кодовые точки EBCDIC, а окончания строк были преобразованы в отступы с пробелами EBCDIC.
Полагаю, мой первый вопрос к вам будет звучать так: «Почему вы делаете перевод вне FTP?»
IBM вкладывает немалые деньги в обеспечение того, чтобы она принимала все виды различных кодировок и переводила их в правильную кодовую страницу.Маловероятно, что автономное решение будет работать на всех интернационализированных версиях z / OS, а также на собственной IBM.
Если вы должны конвертировать на клиенте и передавать в двоичном режимевам придется либо сделать так, чтобы клиент выполнял преобразование и заполнение конца строки, либо постобработать файл после передачи, например, с помощью сценария REXX.
Если вы этого не сделаете знать, какими будут свойства целевого набора данных (например, если вы переносите элемент в PDS), последний вариант может быть единственным жизнеспособным.