前のページ|次のページ

ENCODING=オプション

外部ファイルの入力または出力処理のエンコーディングを優先指定してトランスコードします。

該当要素: %INCLUDEステートメント、FILEステートメント、FILENAMEステートメント、FILENAMEステートメントのEMAIL (SMTP)アクセス方式、INFILEステートメント、ODSステートメント、FILEコマンド、INCLUDEコマンド
カテゴリ: データアクセス

構文

ENCODING= 'encoding-value'

オプション引数

ENCODING= 'encoding-value'

外部ファイルの読み込み、書き出し、コピー、保存に使用するエンコーディングを指定します。ENCODING=の値は、外部ファイルのエンコーディングが現在のセッションエンコーディングとは異なることを示します。

外部ファイルを使用してデータの読み込み、書き出し、コピー、保存を行うと、SASはデータをセッションエンコーディングから指定されたエンコーディングにトランスコードします。
デフォルト SASは、現在のセッションエンコーディングを使用します。

詳細

次のテーブルでは、ENCODINGオプションが対応するステートメントでどのように使われるかについて説明します。
%INCLUDEステートメント:
SASステートメントおよびデータ行の指定したソースファイルからの読み込み (z/OS動作環境ではサポートしていません)
FILEステートメント:
外部ファイルへの書き出し
FILENAMEステートメント:
外部ファイルからの読み込み、外部ファイルへの書き出し
FILENAMEステートメントのEMAIL (SMTP)アクセス方式:
プログラムによる電子メール送信
INFILEステートメント:
外部ファイルからの読み込み
ODSステートメント:
SASプロシジャおよびDATAステップの出力の生成、保存または再作成に使用するOutput Delivery System (ODS)機能の制御
FILEコマンド:
ウィンドウのコンテンツの外部ファイルへの保存
INCLUDEコマンド:
外部ファイルの現在のウィンドウへのコピー
一部のエンコーディングでは、バイトオーダーマーク(BOM)を使用します。BOMはエンコーディングの指定時に生成されます。UTF-8エンコーディングでは、BOMを生成するには、filenameとファイルのDATAステップステートメントにencoding=utf-8を指定しなければなりません。

例1: FILEステートメントを使用した外部ファイルへの書き出しのエンコーディングの指定

この例では、SASデータセットから外部ファイルを作成します。現在のセッションエンコーディングはWlatin1ですが、外部ファイルのエンコーディングはUTF-8にする必要があります。デフォルトで、SASは外部ファイルを現在のセッションエンコーディングを使用して書き出します。
外部ファイルへのデータの書き出しに使用するエンコーディングを指定するには、ENCODING=オプションを次のように指定します。
libname myfiles 'SAS data-library';
filename outfile 'external-file';
data _null_;
   set myfiles.cars;
   file outfile encoding="utf-8";
   put Make Model Year;
run;
SASに対して外部ファイルをUTF-8エンコーディングにするように指示すると、SASはデータをWlatin1から指定されたUTF-8エンコーディングにトランスコードします。

例2: FILENAMEステートメントを使用した外部ファイルの読み込みのエンコーディングの指定

この例では、外部ファイルからSASデータセットを作成します。外部ファイルはUTF-8文字セットエンコーディングで、現在のSASセッションはWlatin1エンコーディングです。デフォルトでは、SASは外部ファイルがセッションエンコーディングと同じエンコーディングであると想定します。この場合、文字データは新しいSASデータセットに正しく書き出されません。
外部ファイルの読み込み時に使用するエンコーディングを指定するには、ENCODING=オプションを次のように指定します。
libname myfiles  'SAS data-library'; 
   
filename extfile 'external-file' encoding="utf-8"; 
data myfiles.unicode;                                                                                                                           
   infile extfile;                                                                                                     
   input Make $ Model $ Year;                                                                                                           
run;
外部ファイルがUTF-8エンコーディングであると指定すると、SASは、新しいSASデータセットへの書き出し時に外部ファイルをUTF-8から現在のセッションエンコーディングにトランスコードします。そのため、データは新しいデータセットにWlatin1で正しく書き出されます。

例3: FILENAMEステートメントを使用した外部ファイルへの書き出しのエンコーディングの指定

この例では、SASデータセットから外部ファイルを作成します。デフォルトで、SASは外部ファイルを現在のセッションエンコーディングを使用して書き出します。現在のセッションエンコーディングはWlatin1ですが、外部ファイルのエンコーディングはUTF-8にする必要があります。
外部ファイルへのデータ書き出し時に使用するエンコーディングを指定するには、ENCODING=オプションを次のように指定します。
libname myfiles  'SAS data-library'; 
filename outfile 'external-file' encoding="utf-8";                                                                                             
data _null_; 
   set myfiles.cars;                                                                                                                          
   file outfile;                                                                                                     
   put Make Model Year;                                                                                                           
run;
外部ファイルをUTF-8エンコーディングにするように指定すると、SASは、外部ファイルへの書き出し時にデータをWlatin1から指定されたUTF-8エンコーディングにトランスコードします。

例4: メッセージ本文と添付ファイルのエンコーディングの変更

この例では、メッセージ本文と添付ファイルのテキストエンコーディングを変更する方法を説明します。
filename mymail email 'Joe.Developer@sas.com';
data _null_;
   file mymail
      subject='Text Encoding'
      encoding=greek 
      attach=('C:\My Files\Test.out' 
         content_type='text/plain' 
         encoding='ebcdic1047' 
         outencoding='latin1'); 
run;              
プログラムでは、次の操作が実行されます。
  • ENCODING=電子メールオプションで、メッセージ本文を送信前にギリシャ語(ISO)でエンコードするように指定します。
  • ATTACH=電子メールオプションの場合、添付ファイルオプションENCODING=で、SASに読み込まれる添付ファイルのエンコーディングを西ヨーロッパ諸語(EBCDIC)に指定します。
  • SMTPやその他の電子メールインターフェイスはEBCDICをサポートしないため、添付ファイルオプションOUTENCODING=によって、添付ファイルは送信前に西ヨーロッパ諸語(ISO)に変換されます。

例5: INFILE=ステートメントを使用した外部ファイル読み込みのエンコーディングの指定

この例では、外部ファイルからSASデータセットを作成します。外部ファイルのエンコーディングはUTF-8で、現在のSASセッションエンコーディングはWlatin1です。デフォルトでは、SASは外部ファイルがセッションエンコーディングと同じエンコーディングであると想定します。この場合、文字データは新しいSASデータセットに正しく書き出されません。
外部ファイルの読み込み時に使用するエンコーディングを指定するには、ENCODING=オプションを次のように指定します。
libname myfiles 'SAS data-library'; filename extfile 'external-file'; data myfiles.unicode; infile extfile encoding="utf-8"; input Make $ Model $ Year; run;
外部ファイルがUTF-8エンコーディングであると指定すると、SASは、新しいSASデータセットへの書き出し時に外部ファイルをUTF-8から現在のセッションエンコーディングにトランスコードします。そのため、データは新しいデータセットにWlatin1で正しく書き出されます。

関連項目:

ステートメント:
FILE Statement (SAS ステートメント: リファレンス)
FILENAME Statement (SAS ステートメント: リファレンス)
INFILE Statement (SAS ステートメント: リファレンス)
コマンド:
FILE Command: z/OS (z/OS版SAS)
FILE Command: UNIX (UNIX版SAS)
FILE Command: Windows (Windows版SAS)
INCLUDE Command: Windows (Windows版SAS)
前のページ|次のページ|ページの先頭へ