& становится & во время FTP к MVS - PullRequest
0 голосов
/ 29 марта 2012

Я использую библиотеку Java (edtftpj) для передачи по FTP файла из веб-приложения, размещенного на сервере Tomcat, в систему MVS.

Режим передачи по FTP - ASCII, и передача осуществляется с использованием потоков FTP. Данные из переменной String хранятся в наборе данных MVS.

Проблема в том, что все символы амперсанда конвертируются в &. Я пробовал различные escape-символы, включая \ &, ^ & и X'50 '(шестнадцатеричное значение), но ни один из них не помог.

Кто-нибудь знает, как избежать амперсандов, пожалуйста?

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

Ничто в протоколе FTP не вызывает такого поведения кодирования.

Представление & как & является экранирующим представлением на основе XML. Другие системы могут использовать ту же схему, но в качестве стандарта это стандартная кодировка XML.

Что-то в чтении данных и записи данных считает, что должно быть экранировано от этой информации, и выполняет кодирование.

Если что-то в системе MVS использует Java, оно, вероятно, обменивается данными через SOAP с каким-либо другим соединителем, что подразумевает XML, что может вызывать выполнение escape-последовательности.

В любом случае, сама часть протокола FTP не является частью проблемы, Передача ASCII должна кодировать только такие вещи, как окончания строк , & уже является допустимым символом ASCII и не будет затронута. Это система MVS, которая делает это, если вообще что-то спасает.

Двоичная передача предпочтительна почти во всех случаях, поскольку она не выполняет никакой интерпретации или кодирования необработанных байтов.

0 голосов
/ 29 марта 2012

Использование FTP в режиме ASCII к / от MVS (z / OS) всегда будет выполнять преобразование кодовой страницы (т. Е. ASCII <-> EBCDIC) для подключения к данным.Таким образом, очень важно настроить соединение с соответствующими параметрами в зависимости от типа набора данных и кодов страниц.Пример:

site SBD=(IBM-037,ISO8859-1)
site TRAck
site RECfm=FB
site LRECL=80
site PRImary=5
site SECondary=5
site BLKsize=6233
site Directory=50

В качестве альтернативы используйте режим BINARY и вручную выполните преобразования с помощью некоторых стандартных инструментов или библиотек на принимающей стороне.


Ссылка:

1.Предустановленные команды для решения проблемы кодовой страницы.
2.Покрытие ASCII в EBCDIC через FTP на хосте MVS.
3.Передача файлов в и из MVS.
4.Преобразование кодовой страницы FTP.
5.Протокол передачи файлов FTP и Z / OS (pdf).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...