我的SAS会话详情如下: -
ENCODING = LATIN1
LOCALE = EN_US
我正在阅读加密的客户名称,使用具有的java代码对其进行解密 已经使用javaobj在sas代码中实现。
data outlib.X1 ( ENCODING = 'asciiany' );
set inlib.INP1 (ENCODING = 'asciiany' ) end=eof;
length decryptedvalue $100;
declare javaobj jObj("<jarname>");
jObj.callstringmethod("<method>", FIRST_NAME , decryptedvalue);
run;
jObj.callstringmethod在字符串decryptedvalue中返回解密的first_name值。我在SAS代码的末尾执行proc导出,并将所有解密的名称存储为csv文件。
在上一次运行中,一些名称具有特殊字符,例如真实。
这导致SAS执行失败并出现以下错误: -
错误:第30行第2行的转码失败。
错误:数据步骤组件对象失败。在执行阶段中止。
有没有办法让SAS会话(LATIN1)接受这些unicode字符?我可以订 decryptedvalue变量的编码?我不想使用sas_u8在unicode中运行我的整个SAS会话。我只想接受这些角色 即使将这些有问题的值视为空白也是可以的。
我已经尝试过以下事项: -
为libname设置inencoding = utf8
为输入数据集创建ENCODING ='asciiany'。
任何输入都会有用。
提前致谢!