上一頁|下一頁

SAS 工作階段中的編碼顯示方式

依 SAS 版本之資料集的編碼支援

針對 Base SAS 檔案,有三種類別的編碼支援,而編碼支援是根據建立檔案的 SAS 版本:
  • SAS 9 中建立的資料集會自動具有編碼特性,而編碼特性指定於檔案的描述項部分。在 SAS 9 中,DBCS 會辨識 DBCSTYPE 值,並將它轉換為編碼值,以及預設在欄位的描述項部分指定它。
  • SAS 7 和 SAS 8 中建立的資料集不會有檔案中所指定的編碼值。會假設是以作業環境的 SAS 工作階段編碼來建立 SAS 7 和 SAS 8 資料集。不過,檔案的描述項部分確實支援編碼值。當您在 SAS 9 工作階段中取代或更新 SAS 7 或 SAS 8 檔案時,SAS 預設會在檔案的描述項部分指定目前工作階段編碼。在 SAS 8 中,DBCS 具有 DBCSTYPE 欄位,而非編碼欄位。
  • SAS 6 中建立的資料集沒有與檔案相關聯的編碼值,而且不可以在檔案中指定編碼值。

z/OS:確定與舊 SAS 版本的相容性

設定 NLSCOMPATMODE 系統選項,可確定與舊 SAS 版本的相容性。
附註: 只有 z/OS 作業環境才支援 NLSCOMPATMODE。
指定 NLSCOMPATMODE 時,舊 SAS 版本中執行的程式還是會持續運作。
NONLSCOMPATMODE 系統選項指定以 ENCODING= 選項或 LOCALE= 選項所設定的編碼來處理資料 (包含讀取和寫入外部資料,以及處理 SAS 語法和使用者資料)。
NONLSCOMPATMODE 作用時,舊 SAS 版本中執行的部分現有程式會無法再執行。如果您已在 SAS 語法陳述式中進行字元替換,則必須將程式修改成使用國家字元。 例如,在現有 SAS 語法中用 Å 字元替換 $ 字元的芬蘭文客戶,必須將程式更新成在芬蘭文環境中使用 $。
如需詳細資料,請參閱 NLSCOMPATMODE 系統選項:z/OS

輸出處理

當您在 SAS 9 中建立資料集時,編碼的決定方式如下:
  • 如果建立新的輸出檔,則會使用目前工作階段編碼,將資料寫入至檔案。
  • 如果使用 OUTREP= 選項 (指定與目前工作階段不同的資料表示法) 建立新的輸出檔,則會使用 OUTREP= 值所指定之作業系統的預設工作階段編碼,將資料寫入至檔案。如需詳細資訊,請參閱 OUTREP= 資料集選項
  • 如果新的輸出檔取代現有檔案,則新檔案會繼承現有檔案的編碼。針對取代來自另一個作業環境之現有檔案的輸出處理,或是如果現有檔案中未指定編碼,則會使用目前工作階段編碼。

輸入處理

針對 SAS 9 中的輸入 (讀取) 處理,編碼顯示方式如下:
  • 大部分使用者都會選擇不指定輸入檔編碼的預設顯示方式。
  • 如果工作階段編碼與檔案中指定的編碼不相容,則會將資料轉碼為工作階段編碼。例如,如果目前工作階段編碼是 ASCII,而且檔案中指定的編碼是 EBCDIC,則 SAS 會將資料從 EBCDIC 轉碼為 ASCII。
  • 如果檔案中未指定編碼,則只有在檔案的資料表示法與目前工作階段不同時,SAS 才會將資料轉碼。

讀取和寫入外部檔案

SAS 會使用目前工作階段編碼來讀取和寫入外部檔案。SAS 假設外部檔案的編碼與工作階段編碼相同。例如,如果您是透過讀取外部檔案來建立新的 SAS 資料集,則 SAS 會假設外部檔案與目前工作階段的編碼相同。 如果編碼不同,則可能會將外部資料錯誤地寫入至新的 SAS 資料集。如需執行輸入和輸出處理之 SAS 陳述式語法的詳細資料,請參閱 轉碼 SAS 資料的 SAS 選項
上一頁|下一頁|頁面頂端