2015-06-08 56 views
-1

我正試圖向Z/OS數據集傳輸一個相當大的UTF-8文件。不幸的是,該命令用於啓用UTF-8到EBCDIC編碼的站點代碼

SITE EN=MBCS MBD=(1047,1208) RECFM=VB 
TYPE A 
STOR STORE.WRK.DATA 

504 Multi-byte encoding not supported for RECFM=FB 

迴應看來RECFM=VB不起作用。

解決方法是在上傳之前將UTF-8重新編碼爲ISO-8859-1,但在上傳時編碼效率更高。

+0

那麼你的問題是什麼?你現在怎麼編碼? –

+0

以UTF-8編碼的原始文件被轉碼爲ISO_8859-1,然後使用FTP以ASCII模式上傳到Z/OS數據集。我正在尋找一種配置ASCII模式FTP以直接接受UTF-8的方法。 – Stavr00

+0

請注意...... UTF-8當然可以表示比ISO-8859更多的字符,所以如果您的UTF-8文件中存在多字節序列,那麼您應該準備好數據丟失的可能性用ASCII表示。當檢測到這個時,底層的「iconv()」例程並不令人愉快。 –

回答

0

使這項工作的訣竅可能是多方面的。

首先,相關網站必須將IBM-1047轉換爲用於z/OS的Unicode轉換服務中定義的IBM 1208。如果不是,那麼隱蔽的嘗試就會失敗。其次,每個字符代碼頁不能發送一個字節到一個爲此設置的數據集,而是將其轉換爲每個字符代碼頁的多字節。如果該數據集中的任何字符增長到兩個或三個字節,記錄長度將導致失敗。所以把它傳送給一個可變長度的記錄長度的數據集,你會沒事的。

+0

事實證明,我們必須對文件進行預處理,所以我們保留了轉換代碼。 (new java.io.InputStreamReader(),「UTF-8」));' 'BufferedWriter bw = new BufferedWriter(new java.io.OutputStreamWriter(outputdoc.getOutputStream() ,「Windows-1252」));' – Stavr00