【问题标题】:utf-8 encoding in SAS with a pipe带有管道的 SAS 中的 utf-8 编码
【发布时间】:2021-12-23 16:08:26
【问题描述】:

有没有办法在 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 语句中,但都不起作用。

【问题讨论】:

    标签: sas


    【解决方案1】:

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

    当然,您也可以通过将 perl 脚本输出写入文件,然后通过普通输入法读取该文件来解决此问题。

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

    【讨论】:

      【解决方案2】:

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

      正如另一位回复的那样,如果您将会话编码设置为 UTF-8(使用 -ENCODING 系统选项),这可能对您有用。但是设置会话编码可能会对您的处理产生其他副作用,因此您需要格外小心。

      【讨论】:

        猜你喜欢
        • 2014-08-02
        • 1970-01-01
        • 2014-01-09
        • 2011-02-21
        • 1970-01-01
        • 1970-01-01
        • 2016-01-08
        • 2014-08-30
        相关资源
        最近更新 更多