Sas 如何删除特殊的ASCII字符?
我正在尝试从字符串中删除特殊字符 孟买降雨实况更新:IMD预测未来24小时将有强降雨�Sas 如何删除特殊的ASCII字符?,sas,Sas,我正在尝试从字符串中删除特殊字符 孟买降雨实况更新:IMD预测未来24小时将有强降雨� data demo1 (keep=headline2 headline3 headline4 headline5); set kk.newspaper_append_freq_daily1; headline2=trim(headline); headline3=tranwrd(headline2,"�"," "); headline5=compress(headline2,"�"); headline4=i
data demo1 (keep=headline2 headline3 headline4 headline5);
set kk.newspaper_append_freq_daily1;
headline2=trim(headline);
headline3=tranwrd(headline2,"�"," ");
headline5=compress(headline2,"�");
headline4=index(headline2,"�");
run;
您可以使用函数。
从文件:
删除或转换不可打印的字符
代码示例:
%let in=kk.newspaper_append_freq_daily1;
%let out=demo1;
data &out;
set ∈
array cc (*) _character_;
do i=1 to dim(cc);
cc(_N_)=kpropdata(cc(i),"TRUNC", 'utf-8');
end;
run;
在代码中,我使用语句对表中的所有字符列进行迭代。如果您保留了一个字符白名单,而不是试图排除一个黑名单,compress也应该处理这个问题-例如
clean_text = compress(dirty_text,'','kw');
k修饰符保留字符而不是删除字符,w将所有可打印的字符添加到列表中。在这种情况下,tranwrd和compress不会提供所需的结果吗?我想他们会的。如果您想删除所有特殊字符,我会根据需要使用compress和“k”选项。另一个选项是translate函数� 向用户指示由于错误处理而丢失了部分文本数据的位置,很可能是由于使用错误的字符编码进行解码。试着解决那个问题。