Options for Commands, Statements, and Procedures for NLS |
Explicitly changes the encoding attribute of a SAS file to match
the encoding of the data in the SAS file.
Valid in: |
MODIFY statement of the DATASETS procedure
|
MODIFY SAS file </<CORRECTENCODING=encoding-value>>
;
|
- </ <CORRECTENCODING=encoding-value>
>
-
enables you to change the encoding indicator, which is
recorded in the file's descriptor information, in order to match the actual
encoding of the file's data. You cannot use this option in parenthesis after
the name of each SAS file; you must specify CORRECTENCODING= after the forward
slash. For example:
modify mydata / correctencoding=latin2;
For a list of valid encoding values for transcoding, see SBCS, DBCS, and Unicode Encoding Values for Transcoding Data.
Restriction: |
CORRECTENCODING= can be used only
when the SAS file uses the default base engine, which is V9 in SAS 9. |
A file's encoding indicator
can be different from the data's encoding. For example, a SAS file that was
created before SAS 9 has no encoding indicator stored on the file. If such
a SAS file that has no recorded encoding is opened in a SAS 9 session, SAS
assigns the encoding of the current session. For example, if the encoding
of the data is Danish EBCDIC, but the encoding for the current session is
Western Wlatin1, then the actual encoding of the file's data and the encoding
indicator that is stored in the file's descriptor information do not match.
When this action occurs, the data does not transcode correctly and could result
in unreadable output. The following MODIFY statement would resolve the problem
by explicitly assigning an EDCDIC encoding:
Note: CEDA creates a read-only
copy. You need to copy the data with PROC COPY or a DATA step to transcode
the data permanently. ![[cautionend]](../../../../common/63294/HTML/default/images/cautend.gif)
proc datasets library=myfiles;
modify olddata / correctencoding=ebcdic1142;
quit;
Copyright © 2010 by SAS Institute Inc., Cary, NC, USA. All rights reserved.