2012-03-29 7 views
-1

私は、Javaライブラリ(edtftpj)を使用して、tomcatサーバーからホストされているWebアプリケーションからMVSシステムにファイルをFTP転送しています。&& FTPからMVSに

FTP転送モードはASCIIで、FTPストリームを使用して転送が行われます。 String変数のデータは、MVSデータセットに格納されます。

問題は、すべてアンパサンド文字が&に変換されることです。私は\ &、^ &、X'50 '(16進値)を含む様々なエスケープ文字を試しましたが、どれも役に立たなかった。

アンパサンドをどのようにエスケープするのか誰でも考えてください。

+0

あなたはどのようにデータセットにデータを格納していますか?ファイルを転送する前にファイルにリテラルアンパサンドが含まれていますか?信じられないほどFTPが責任を負うことはありません。 – geoffspear

+0

私は 'UK&US'のような文字列を持っています。これはXYZ.ID188.D0329のようなデータセットに対してFTPで処理されています。このデータセットは新しく作成されます。私はFTPがいずれかの責任を負うことは確かではありませんが、もう一度問題がどこにあるのかわかりません。 – redDevil

+0

この文字列はXML文書の中にありますか? –

答えて

2

FTPプロトコルの何もこのエンコード動作を引き起こしません。

&&と表すことは、XML based escapingの表現です。 他のシステムでも同じスキームが使用されることがありますが、標準として、これはXML標準エンコーディングです。

データの読み込みやデータの書き込みには、この情報をエスケープする必要があり、エンコードが行われていると考えられます。

MVSシステム上にJavaを使用しているものがあれば、SOAPを介して他のコネクタと通信している可能性があります。これはXMLを意味し、エスケープシーケンスが発生している可能性があります。

いずれにしても、FTPプロトコル自体は問題の一部ではなく、ASCII transfer should only encode things like line endings,&はすでに有効なASCII文字であり、影響を受けません。これがあればエスケープするのはMVSシステムです。

バイナリ転送は、生のバイトの解釈またはエンコードを一切行わないため、ほぼすべての場合で優先されます。

+0

残念ながら、FTPをASCIIモードでMVS(z/OS)との間で使用すると、コード・ページ変換が常に実行されます。詳細は私の答えを見てください... – IODEV

+0

あなたは答えがありません、あなたは質問へのコメントと全く同じことを投稿しました。いずれにしても、私の答えはまだ正確です.FTP自体はこれを引き起こすものではありません。正しい場合は、エンコードを実行するのはMVSシステムです。 –

+0

申し訳ありませんJarrod、答えを投稿する際にいくつかの問題がありました。レッスンで学んだこと:さらなるコメントをする前に回答を投稿する – IODEV

-1

MVS(z/OS)とのASCIIモードでFTPを使用すると、データ接続用のコードページ変換(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 

、バイナリモードを使用して手動で受信端に標準のツールまたはライブラリの一部との変換を行います。


参考リンク:

1. Preset commands to tackle codepage problem.
2. Coverting ASCII to EBCDIC via FTP on MVS Host.
3. Transferring Files to and from MVS.
4. FTP code page conversion.
5. FTP File Transfer Protocol and Z/OS (pdf).

関連する問題