2

有没有办法在 SAS 中结合管道 infile 和 utf-8 编码?

例如,这有效:

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语句放在filename语句和infile语句中,但都不起作用。

4

2 回答 2

2

SAS for Windows 中的 PIPE“设备”当前不支持 ENCODING 选项。但是,我的理解是可以在 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 回答