2

パイプされたinfileとutf-8エンコーディングをSASで組み合わせる方法はありますか?

たとえば、これは機能します。

data wordlist;
    infile 'wordlist.txt' dlm='|' encoding='utf-8';
    input polar $3. word :$30.;
run;

しかし、これはしません:

filename inf pipe 'perl fix.pl';

data wordlist;
    infile inf dlm='|' encoding='utf-8';
    input polar $3. word :$30.;
run;

エラーは次のとおりです。

エラー23-2:無効なオプション名ENCODING。

ステートメントとencodingステートメントにステートメントを入れてみましたが、どちらも機能しません。filenameinfile

4

2 に答える 2

2

ENCODING オプションは、現在、SAS for Windows の PIPE "デバイス" ではサポートされていません。ただし、私の理解では、それは UNIX でも機能します。

別の人が答えたように、セッションエンコーディングをUTF-8に設定すると( -ENCODING システムオプションを使用して)、うまくいくかもしれません。ただし、セッション エンコーディングを設定すると、処理に別の副作用が生じる可能性があるため、注意が必要です。

于 2012-10-19T17:42:38.290 に答える
1

パイプされたファイルが異なる理由はわかりませんが、セッションのエンコーディングを UTF-8 に変更するとどうなるでしょうか?

別の方法として、perl スクリプトの出力をファイルに書き込み、それを通常の入力方法で読み取ることで、もちろん回避できます。

これは少し前に SAS-L で議論されましたが、これ以上の解決策は見つからなかったと思います ( http://listserv.uga.edu/cgi-bin/wa?A2=ind1203b&L=sas-l&D=0&P=を参照)。 9728 )

于 2012-10-19T15:01:05.440 に答える