使用 MFT 傳送文字檔

文字檔傳送涉及將檔案的字碼頁從一種字碼頁轉換成另一種字碼頁。 文字檔傳送也涉及在系統之間轉換 CRLF(歸位-換行)字元。 本主題彙總 Managed File Transfer的文字檔傳送行為。

除非您另有指定,否則會從檔案的來源系統的預設字碼頁轉換成其目的地系統的預設字碼頁。 此外,文字檔傳送會執行換行轉換,這表示目的地檔案的換行字元是其目的地平台的原生換行字元。 您可以指定用來讀取來源檔案及寫入目的地檔案的字碼頁,來置換系統上使用的預設字碼頁。 您也可以指定用於目的地檔案的行尾字元序列。 如需相關資訊,請參閱 fteCreateTransfer (開始新的檔案傳送)主題。

文字檔傳輸會在字碼頁之間執行簡單的字碼點替換。 文字檔傳輸不會執行複雜的傳輸或資料轉換,例如在雙向資料或文字造形的顯示與邏輯格式之間轉換。

表 1. 所有平台的文字檔傳送行為
區域 預設行為 您能否變更此行為?
來源檔案編碼 來源平台編碼

當您指定來源檔案編碼且來源是資料集時,編碼必須是 EBCDIC 字碼頁,否則傳送失敗。 同樣地,如果目的地是資料集,目的地編碼必須是 EBCDIC 字碼頁。

來源檔案行尾字元序列 將單一 (LF) 或 (CRLF) 序列轉換成目的地行尾字元序列
目的地檔案編碼 目的地平台編碼

當您指定來源檔案編碼且來源是資料集時,編碼必須是 EBCDIC 字碼頁,否則傳送失敗。 同樣地,如果目的地是資料集,目的地編碼必須是 EBCDIC 字碼頁。

目的地檔案行尾字元序列 目的地平台 EOL
來源或目的地中未對映的或形態異常的字元的文字取代字元序列 空白,表示如果有未對映的字元或形態異常的字元,則傳送失敗。 您可以使用 textReplacementCharacterSequence 內容來指定取代文字,如 agent.properties 檔案中所述。
[z/OS]

z/OS 資料集

以文字模式存取資料集記錄時,每一個記錄代表一行。 記錄中不會有換行字元,但以 ASA 格式資料集而言,設定了 ASA 格式控制碼字元來代表換行字元(或其他控制字元)。 當含有終止的換行字元的一行文字寫入記錄時,會自動移除換行字元,或適時設定適當的 ASA 控制碼。 讀取記錄時,換行字元會自動附加到傳回的資料。 以 ASA 格式資料集而言,如果適合記錄的 ASA 控制碼,此字元可以是多次換行或換頁。

此外,以固定格式資料集而言,在讀取記錄時,會在記錄最後一個字元(但非空格字元)之後附加換行字元,使固定格式資料集適合儲存文字。

表 2. z/OS 特有的其他文字檔傳送行為
區域 預設行為 您能否變更此行為?
最大行長度 適當的目的地資料集 LRECL 或 BLKSIZE 設定
折返長度行 折返。 如有需要,此行可分割成多個記錄和區塊。

當執行 Managed File Transfer 代理程式時,環境變數 _EDC_ZERO_RECLEN 一律設為 "Y"。 此設定會使 Managed File Transfer 文字傳送行為與 FTP 對變數及固定區塊資料集的傳送行為相同。 不過,對於未定義的格式資料集, Managed File Transfer 會將單一空格行轉換成空白行,並保留空白行。 FTP 將空白行轉換成單一空格行,並保留單一空格行。 表 3 說明 Managed File Transfer 行為以及 FTP 行為的差異。

資料集的格式也決定每一文字行如何寫入記錄中。 以非 ASA 格式資料集而言,換行及歸位字元不會寫入記錄中。 以 ASA 格式資料集而言,每一個記錄的第一個位元組是代表行尾或換頁的 ASA 控制碼,以及其他適當的代碼。 因為 ASA 控制碼位於每一個記錄的開頭,如果來源文字檔的開頭不是換行字元序列,則會插入空白 (' ') ASA 控制字元序列(相等於新增一行)。 這表示如果 ASA 資料集傳送到檔案,空白行會出現在檔案開頭。

表 3. Managed File Transfer 資料集的行為
資料集格式 檔案中的原始文字行 資料集記錄 讀取資料集記錄 FTP 讀取行為
固定區塊 空白行 填入空格的記錄 空白行 MFT 相同
固定區塊 單一空格 填入空格的記錄 空白行 MFT 相同
可變區塊 空白行 空白記錄 空白行 MFT 相同
可變區塊 單一空格 單一空格記錄 單一空格 MFT 相同
未定義 空白行 單一空格記錄 空白行 單一空格
未定義 單一空格 單一空格記錄 空白行 單一空格