SAS打印特殊字符的ASCII值

时间:2015-08-21 19:05:56

标签: sas ascii

我正在使用SAS中的notalnum功能。输入是db字段。现在,该函数返回一个值,告诉我每个字符串的末尾都有一个特殊字符。 它不是空格字符,因为我在输入字段上使用了COMPRESS函数。

如何在每个字符串的末尾打印特殊字符的ACII值?

2 个答案:

答案 0 :(得分:1)

$ HEX。格式是查看它们的最简单方法:

data have;
  var="Something With A Special Char"||'0D'x;
run;

data _null_;
  set have;
  rul=repeat('1 2 3 4 5 6 7 8 9 0 ',3);  *so we can easily see what char is what;
  put rul=;
  put var= $HEX.;
run;

您还可以使用压缩(c)上的var=compress(var,,'c');选项来压缩控制字符(这些字符通常是您在这些情况下遇到的控制字符)。

最后 - '如果您的数据来自网络,则A0' x是一个很好的添加到列表中的空间,即非破坏空间。

答案 1 :(得分:0)

如果要查看ascii表中字符的位置,可以使用rank()函数,例如:

data _null_;
  string = 'abc123';
  do i = 1 to length(string);
    asc = rank(substr(string,i,1));
    put i= asc=;
  end;
run;

给出:

i=1 asc=97
i=2 asc=98
i=3 asc=99
i=4 asc=49
i=5 asc=50
i=6 asc=51

Joe的解决方案非常优雅,但看到我的十六进制和十进制转换技能相当差,我倾向于这样做。