我们能够做到以下几点。
在VBA 6/VBA 7中:
-
参考32位zlibwapi。dll(VBA 6)或64位zlibwapi。dll(VBA 7)。
-
调用compress()或compress2()方法以生成压缩
溪流
-
压缩流
在Java 8中(Tomcat 8上的JDK 1.8)
-
有一个简单的java程序,它使用新的
Deflater()实例
-
有一个简单的Java程序,可以使用充气器()进行解压缩
当VBA发送压缩流以供Java Servlet解压缩时,或者当Java Servlet发送压缩响应数据以供VBA解压缩时,我们失败了。
-
-
zlibwapi中的方法。dll即compress()和compress2()
生成zlib格式的压缩字节。已经提到了这一点
Java decompressing array of bytes
-
根据发布于的代码样本的数据
Compression / Decompression of Strings using the deflater
-
包裹
-
1.2.5在VBA侧。
我们尝试使用十六进制编辑器来比较VBA和Java独立生成的压缩数据的字节流。我们注意到生成的压缩数据中存在一些差异。我们认为正是这种差异导致了两种环境之间的误解。
此外,我们认为,当通信发生时,必须有一些公共字符集来控制两个端点之间的编码/解码方案。我们甚至试图比较VBA生成的字节流的十六进制代码,并将其传递给Java Servlet。
-
在通信时的实际压缩字节集之间
发生。这发生在VBA侧。可能是因为一些unicode解释。
-
它们的表现形式不同。
我们需要修复独立工作的代码,以便彼此通信,并和平地压缩和解压缩。我们认为有两件事需要解决——获取匹配的格式和使用按原样发送字节的字符集。我们正在寻求这方面专家的任何帮助,以帮助我们找到可能的解决方案的正确途径。我们需要答案
-
-
哪个字符集允许我们按原样发送字节(如果有10个字节)
在中间插入(因此10个字节变为20个字节)。