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