我需要编码一个长字符串并放在XML文档中。代码示例:
data newData;
set oldData;
newString=oldString;
format newString $base64x64.;
run;
旧字符串看起来与新字符串相同..想法?
答案 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.你的输入字符串可能太长了,你不得不以某种方式拆分它