如何在SAS中编码base64

时间:2011-03-18 15:48:44

标签: base64 sas

我需要编码一个长字符串并放在XML文档中。代码示例:

data newData;
 set oldData;
 newString=oldString;
 format newString $base64x64.;
run;

旧字符串看起来与新字符串相同..想法?

3 个答案:

答案 0 :(得分:3)

出于某种原因应用$ base64xw。格式化为值不起作用。对我来说看起来像个错误。但是,使用PUT函数将值转换为base64可以正常工作。

data newData;
 set oldData;
 newString=put(oldString,$base64x64.);;
run;

答案 1 :(得分:1)

我不知道您使用的是哪个版本的SAS,但是document表示可以编码最多32,767字节的字符串。

由于这是最大的正16位整数,我猜这个限制已经存在了一段时间。

答案 2 :(得分:1)

刚申请

format newString $base64x64.;

实际上根本不会改变newString的值。当你说OldString看起来和新字符串相同时,你的意思是什么?你说长字符串不会编码,所以我假设你在方法中看到了一些编码证据。

请注意,您已在格式上指定了64的显式长度,因此格式化的值将占用64的字段宽度。因此,您只能使用该格式编码长度为48的字符串( BASE64每3个生成4个字节)。你说长串,但多久了?正如Gilbert所提到的,BASE64X格式的最大格式长度是32767,这意味着你可以生成的最大输出base64字符串是32767.你的输入字符串可能太长了,你不得不以某种方式拆分它