过滤SAS中的特定unicode字符

时间:2017-04-27 16:17:31

标签: unicode sas

我需要替换SAS中的特定unicode字符,恰好是带有空格或空白的U + 0191。我怎么能通过COMPRESS做到这一点?提前谢谢。

1 个答案:

答案 0 :(得分:4)

您应该使用KCOMPRESS function而不是COMPRESS来压缩unicode字符,因为它被认为对Unicode和DBCS环境更安全。

然而,听起来你实际上想要TRANSLATE,或更准确地KTRANSLATE,它实际上用空格或其他字符替换字符(而不是删除它们,如COMPRESS那样)。

以下是一个例子:

data have;
  charvar = "Ƒellow Americans";
  fixed_charvar = translate(charvar,'F','Ƒ');
  kfixed_charvar= ktranslate(charvar,'F','Ƒ');
  put _all_;
run;

这里我将U + 0191转换为普通F;当然,您可以根据需要转换为空格(将'F'替换为您希望转换为的任何内容。)

这将在以Unicode模式设置的SAS实例中起作用;如果你在WLATIN1或类似的情况下运行,你可能会遇到更多困难,特别是在实际传递SAS U + 0191角色时。