带有管道的SAS中的utf-8编码

时间:2012-10-19 14:15:52

标签: sas

有没有办法在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。

我已尝试将encoding语句放在filename语句和infile语句中,但都不起作用。

2 个答案:

答案 0 :(得分:2)

SAS for Windows中的PIPE“设备”目前不支持ENCODING选项。但是,我的理解是可以在UNIX上工作。

另一个响应,如果您将会话编码设置为UTF-8(使用-ENCODING系统选项)可能适合您。但是设置会话编码可能会对您的处理产生其他副作用,因此您需要谨慎行事。

答案 1 :(得分:1)

不知道为什么管道文件会有所不同,但如果您将会话编码更改为UTF-8会怎么样?

或者你可以通过将perl脚本输出写入文件然后通过普通输入方法读取它来解决它。

在SAS-L上讨论过这个问题,我认为找不到更好的解决方案(见http://listserv.uga.edu/cgi-bin/wa?A2=ind1203b&L=sas-l&D=0&P=9728