问题: 我有一个 .NET HTTP 处理程序接受 XML 的 HTTP POST,我相信它来自 Java 系统。一个元素包含一个 base64 字符串编码的文档(当前测试文件是 PDF)。当我获取原始 PDF 并从 .NET 生成 base64 字符串时,它与提供的 XML 中的相应文本之间存在一些差异。
有许多地方会发生以下三种情况之一:
- XML 文件在 .NET 放置加号的地方放置一个空格
同样,XML 文件插入了一对连续的空格,而 .NET 的优点
PgplbmRv YmoKNSAw
对比PgplbmRv++YmoKNSAw
有时 XML 文件插入了一对连续的空格,而 .NET 的优点是在 XML 版本附近添加了额外的空格
3kuPs 85QZWYaw BsMNals
对比3kuPs 85QZWYaw++BsMNals
源 XML 将有四个空格(下面的显示看起来像 2 个空格)而 .NET 有一对连续的加号
vGDmKEJ gnJeOK
对比vGDmKEJ++gnJeOK
此外,源数据(Java 创建的?)数据中没有任何优点。
问题: 有人可以帮助确定可能导致这些差异的原因吗?最紧迫的是我如何解决它们,因为我看不到用于搜索和替换的可靠模式?
编辑: 当 POST 到达时,它会在反序列化为对象之前进行 URL 解码。
public void ProcessRequest(HttpContext context)
{
try
{
StreamReader reader = new StreamReader(context.Request.InputStream);
context.Response.ContentType = "text/plain";
var decodedRequest = HttpUtility.UrlDecode(reader.ReadToEnd());
...