1

我正在扫描一个 Pdf417 条形码,它返回一个 byte[] 数组。DataString 本身是一个神秘的值,例如多次快速地面对面键盘。所以我猜它可能是一个存储在条形码中的 zip 文件。在 zip 文件中应该有一个 xml 文件。到目前为止,我有不同的尝试将我的 byte[] 数组转换为有效的 zip 文件。最后,我永远无法打开所说的 zip 文件。条形码是由经过认证的软件解决方案创建的,因此条形码肯定不是问题。我不可能是唯一遇到这个问题的人,对吧?

读取包含虚拟数据的条形码时的输出:

"\0\0\0\vz\0\u0002B\u0001\u0002PK\u0003\u0004\n\0\0\0\b\0 E\u0081Q|\u0015\u00163Î\u0001\0\0\u0004\ u0004\0\0\u0004\0\0\0txab}SMo£0\u0010½ï¯°|\a\u001bª¤Ý\u0015Påc\u0093Fê&\b²9ôÆÂ$ \r¦²M\u0093üûNø\b$Që\u008bí7ï½\u0019{ lçù\u0098ïÉ\aH\u0095\u0015Â¥\u0096É)\u0001\u0011\u0017I&v.ý»\u009e\u0019OôÙsÖ\u0004iB¹4Õúý\u0017c\u0087ÃÁT\u0087L©\u0004b3N\u0099\u008aSÈ#¦\u0012fs>ä6·X\ U0018í#y \ u009ab \ u008ct}}}} \ u001c \ u008d)\ t \ t \ u0017s \ u0097 v+\ \ \ \ \ \ \ \ \ \ \u009dô \u009c²Fäcé\u0085XLÉk¤´¨4\u0015\u009d\u0092Y&[äìÒ\u0017×ÚJ\u001fn\u008cQh,¥÷8\u0018\u009a\u0016\u000eÓÆa>ütØ%Tgbm\u00009\u0001f \u0016¹gãe\u0018|`pËa\u0015pÍ)\u0085Îö5ɲ\u008d\a$ÕHgÍn½\u009d\u0005ö'\ao\u0080'á&ç\u000ek\u0080\u008e1\u0093Ø>\u008:m¦\u0005Ù\u0006njYÃQ{ãB\u0094ÊaÕú:\u001c\u0096¹g]r\u009ew½"¿ðuæ²Pª©ox\u0011÷Ñ\u008e;ÞÌ\u008dWß7&\u0085Ð2ûW\u009e\u001fÍM\r\u0001ìJ|Oxa\u008dS\v\ÓüRÆi ¤ ª·a]\u0090^Íßçs\u0096 Û\u009b~lm:¬ãM!)ã³v¤Ã\u0002Óô²Þ\u0087:Ù$\u008dä\u000eTPî\u0081ÝÃ7\aú½Ý\u0002\u001a·ï}\QÙ\u001d ×Ý\u000fð\u0093Êÿí×aø\u0082±ÓÞ'PK\u0001\u0002\u0014\0\n\0\0\0\b\0 E\u0081Q|\u0015\u00163Î\u0001\0\0\u0004 \u0004\0\0\u0004\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0txabPK\u0005\u0006\0\0 \0\0\u0001\0\u0001\02\0\0\0ð\u0001\0\0\0\0"PK\u0001\u0002\u0014\0\n\0\0\0\b\0 E\u0081Q|\u0015\u00163Î\u0001\0\0\u0004\u0004\0\0\u0004\0\0\ 0\0\0\0\0\0\0\0\0\0\0\0\0\0\0txabPK\u0005\u0006\0\0\0\0\u0001\0\u0001\02\ 0\0\0ð\u0001\0\0\0\0"PK\u0001\u0002\u0014\0\n\0\0\0\b\0 E\u0081Q|\u0015\u00163Î\u0001\0\0\u0004\u0004\0\0\u0004\0\0\ 0\0\0\0\0\0\0\0\0\0\0\0\0\0\0txabPK\u0005\u0006\0\0\0\0\u0001\0\u0001\02\ 0\0\0ð\u0001\0\0\0\0"

不要太在意这个功能,在这个阶段我可能正在努力寻找解决方案。这只是我的许多测试空白之一。

public void Test(byte[] bytes)
    {
        byte[] zipBytes;

        using (var memoryStream = new MemoryStream())
        {
            using (var zipArchive = new ZipArchive(memoryStream, ZipArchiveMode.Create, leaveOpen: true))
            {
                var zipEntry = zipArchive.CreateEntry("test");
                using (Stream entryStream = zipEntry.Open())
                {
                    entryStream.Write(bytes, 0, bytes.Length);
                }
            }
            zipBytes = memoryStream.ToArray();
        }

        using (var fileStream = new FileStream(@"C:\BarcodeReaderTesting\test.zip", FileMode.OpenOrCreate))
        {
            fileStream.Write(zipBytes, 0, zipBytes.Length);
        }
    }

关于这个主题的任何提示?

4

0 回答 0