在SAS中如何避免特殊字符带来的困扰§
在ascii编码环境下,特殊字符是0-31, 127-255. 我们可以利用这个信息 用 byte返回这些特殊字符的集合,然后用compress一起删掉这些特殊字符。 但是 compress并不是一个MBCS function,如果我们是在utf8的编码环境下去处理中 文,这个功能就不好用了。SAS也有提供一个MBCS的function--kpropdata来清 理一些不可打印出来的字符。但是实测并不好用,而且当我们想尽可能的保留这 些特殊字符,同时又不希望特殊字符给SAS程序带来麻烦的时候这个function就 不能用了。其实这种情况下最优雅的办法是使用正则。正则中提供了对unicode 的支持,如果我们使用\x加上16进制来表示所有需要处理的特殊字符,可以对这 个pattern进行各种需要的操作,另外有一点需要注意的是,因为一些特殊字符 在ascii编码和在utf8编码中的顺序不同,在使用utf8编码读取ascii编码的源文 件时可能会发现部分特殊编码变成空白。需要额外的步骤来保留这些特殊字符, 这里不作展开。