相关疑难解决方法(0)

Base64字符串抛出无效字符错误

即使我不应该,我仍然会收到Base64无效字符错误.

该程序获取XML文件并将其导出到文档.如果用户想要,它也会压缩文件.压缩工作正常并返回一个Base64字符串,该字符串被编码为UTF-8并写入文件.

当它将文档重新加载到程序中时,我必须检查它是否被压缩,代码只是:

byte[] gzBuffer = System.Convert.FromBase64String(text);
return "1F-8B-08" == BitConverter.ToString(new List<Byte>(gzBuffer).GetRange(4, 3).ToArray());
Run Code Online (Sandbox Code Playgroud)

它检查字符串的开头以查看其中是否包含GZips代码.

现在的问题是,我的所有测试都有效.我拿一根绳子,压缩它,解压缩,并将它与原始的相比较.问题是当我从ADO Recordset返回字符串时.字符串正是写入文件的内容(最后添加了一个"\ 0",但我认为它甚至没有做任何事情,即使修剪它仍然会抛出).我甚至将整个字符串复制并粘贴到测试方法中并压缩/解压缩.工作良好.

测试将通过,但代码将使用完全相同的字符串失败?唯一的区别是,只是声明一个常规字符串并传递它,我从记录集返回一个.

关于我做错什么的任何想法?

c# string ado.net base64 invalid-characters

14
推荐指数
1
解决办法
10万
查看次数

标签 统计

ado.net ×1

base64 ×1

c# ×1

invalid-characters ×1

string ×1