C#FromBase64String()返回异常:在某些iPhone 6s(例如iPhone 6s)上,输入不是有效的b



我有一个Web服务,它是在处理后返回base64字符串到Xamarin forms App(Android and IOS(。

decode base64 i使用convert.frombase64String((在Xamarin App(.NET Standard 2.0(

在Android设备上没有问题,返回的字符串已正确解码。

在iPhone 5s上的iOS上进行测试,没有问题,但是在我的同事(iPhone 6s(的设备上,抛出了以下例外:

输入不是有效的base64字符串,因为它包含一个非基础64 角色超过两个填充字符或一个非法字符 在填充字符中

返回的基座64字符串:

这是正确的格式,但在某些iOS设备上不起作用。

我发现了问题,结果我的巴利兹http://schemas.microsoft.com/2003/10/serialization/serialization/ '>仅在iOS中添加。<<<<<<<<<<<<<<<<<<<<<<<</p>

我已经删除了巴利兹,并且可以很好地工作。

我已经注意到有关XML至base64的评论...

thx为您的建议。

问候。

上面的基本64字符串对此进行解码:

<?xml version="1.0" encoding="UTF-8"?>
<Data Version="1">
  <Controls>
    <Control>
      <IdFromDevice>2</IdFromDevice>
      <IdFromDB>10222</IdFromDB>
      <Result />
      <ResultComfort />
      <IsAccepted>False</IsAccepted>
      <IsAcceptedComfort>False</IsAcceptedComfort>
      <Errors />
    </Control>
  </Controls>
</Data>

您的base64编码XML?这似乎是非常错误的。

发送数据的理想方法是字节 - 当对方精确地知道您的编码 - 或至少让某人可靠地为您进行编码。但是,并非所有数据传输选项都支持所有可能的二进制值。有些(例如早期电子邮件和网页(仅限于英文字母的一个子集。

这就是base64的进来。它可以帮助您将这些二进制数据编码到您知道媒体可以可靠地轨道的字母中。

现在,虽然XML的最初目标是人类的可重复性,但作为副作用,它还允许在"不允许所有字节"介质上进行可靠的传输。它遵循所有字符局限性并编码HTML在过去几十年中制定的阳极规则,因此它在HTML都可以使用。

你:

  • 获取了一些二进制数据
  • XML编码
  • 将XML转回二进制数据
  • base64编码数据
  • 已通过介质传输的数据
  • 然后解开这些转换

这是一个字节和字节到基本64转换为许多人的文本。我能给您的最好的建议是,您意识到您可能会陷入XY问题。您需要返回原始问题,以便我们可以为此提供帮助。这件事有太多的失败效果,这些要点完全是无聊的。

相关内容

  • 没有找到相关文章

最新更新