Кодировка текстового файла для отображения в мэйнфрейме IBM - PullRequest
0 голосов
/ 27 марта 2011

У меня есть программа на C ++, которая отправляет данные через FTP через режим ASCII на мэйнфрейм IBM. Я сейчас делаю это через C #.

Когда он попадает туда и просматривается, файл выглядит как мусор.

Я не вижу ничего в коде C ++, который делает что-то особенное для кодирования файла во что-то вроде EPCDIC. Когда файлы C ++ отправляются, они просматриваются нормально. Единственное, что я вижу по-разному, это \ 015 & \ 012 для перевода строки, тогда как C # использует \ r \ n.

Будут ли эти символы иметь эффект, и если да, то как мне заставить мое приложение C # использовать \ 015?

Нужно ли делать какую-либо специальную кодировку, чтобы она выглядела нормально?

Ответы [ 3 ]

3 голосов
/ 27 марта 2011

Похоже, вы действительно должны использовать кодировку EBCDIC, а затем, вероятно, передавать текст в двоичном виде. У меня есть класс кодирования EBCDIC , который вы можете использовать, если хотите.

Обратите внимание, что \015\012 - это \r\n - это символы 13 и 10 в десятичном формате, просто разные способы их представления. Если вы думаете, что код C ++ действительно производит те же файлы, что и C #, сравните два файла, которые должны быть одинаковыми в редакторе двоичных файлов.

1 голос
/ 31 марта 2011

Прежде чем передавать файл, убедитесь, что у вас есть команда TYPE TEXT вместо TYPE BINARY.

0 голосов
/ 08 сентября 2011

Если вы действительно отправляете файлы в режиме ASCII, то сам мэйнфрейм преобразует это в EBCDIC (это хорошо для приемника).

Тот факт, что вы получаете очевидный мусор на мэйнфреймеend и коды символов \015 и \012 (которые CR и LF соответственно) означают, что вы не переводите в режиме ASCII.

В сторонуРедактор ISPF теперь может просматривать наборы данных ASCII для нескольких версий.Откройте файл и введите команды source ascii и lf.

. Первый рендер преобразует символы из ASCII в EBCDIC, чтобы вы могли видеть, что они из себя представляют, второй проходит и дополняет «строки».так что маркеры перевода строки заменяются достаточным количеством пробелов для достижения длины записи.

Бесценные команды при работе со средами смешанного кодирования, где я выполняю большую часть своей работы.

...