上一頁|下一頁

轉碼考量

雖然轉碼通常不會發生問題,但還是可能發生影響資料的情況,並產生不滿意的結果。例如:
  • 編碼可能會彼此衝突。 亦即,兩個編碼可能使用不同的字碼指標來表示相同的字元,或使用相同的字碼指標來表示兩個不同的字元。
  • 某種編碼的字元可能不存在於另一種編碼中。例如,特定編碼可能沒有表示貨幣符號 ($) 的字元。將資料轉碼為不支援貨幣符號的編碼,會導致無法列印或顯示字元
  • 某種編碼之字元的位元組數,可能會與另一種編碼之相同字元的位元組數不同。從 DBCS 轉碼為 SBCS 即為一例。因此,轉碼可能會導致字元值截斷。
  • 如果在轉碼期間發生錯誤,因此無法將資料轉碼回其原始編碼,則資料可能會遺失。亦即,如果您開啟資料集進行更新處理,則可能不會更新觀測值。不過,如果您開啟資料集進行輸入 (讀取) 處理,而且未開啟任何輸出資料集,則 SAS 會發出可以列印的警告。處理會繼續,並允許 PRINT 程序或其他讀取作業顯示未轉碼的資料。
  • CEDA 有一些處理限制。 例如,CEDA 不支援更新處理。
  • SAS 7 或 SAS 8 資料集在工作階段編碼與資料不同的 SAS 9 工作階段中進行複製或取代時,可能會加上不正確的編碼。在 PROC DATASETS 的 MODIFY 陳述式中,可以使用 CORRECTENCODING= 選項來更正不正確的編碼戳記。如果字元變數包含二進位資料,則轉碼可能會損毀資料。
上一頁|下一頁|頁面頂端