程序中实现了这样一个功能,将一个对象序列化后,作为参数传递给另一个页面,这个页面得到参数并反序列化后还原此对象,但是在运行时有时正常,有时出现“base-64 字符数组的无效长度”的错误提示。

在网上查找资料,都是说在使用Convert.ToBase64String()方法对字符串进行Base64编码时,需要使参数的长度等于4或4的偶数倍数,否则将抛出“FormatException”异常。但是我这里使用的参数是使用Convert.ToBase64String()方法生成的,理论上是没有问题的。于是对比用Convert.ToBase64String()生成的字符串A与反序列化前Convert.ToBase64String()所使用的参数字符串B,发现A与B之间有差异,A中的加号变成了空格。这是由于网页传递参数时,会将加号编码成空格,但是在解码时却不会解码空格,结果就造成了字符串B不正确,无法背编码。

确认了问题就好办了,在得到序列化字符串后,使用String.Replace("+", "%2B")先将空格编码,然后再作为参数传给另一页面传递,这样页面在提取参数时才会将“%2B”解码为加号,参数没有差别,在执行反序列化成功就通过了。

转载于:https://www.cnblogs.com/window07/archive/2009/07/22/1528838.html

反序列化时出现“base-64 字符数组的无效长度”错误提示的解决相关推荐

  1. “base-64 字符数组的无效长度”错误解决方案

    "base-64 字符数组的无效长度"错误解决方案 参考文章: (1)"base-64 字符数组的无效长度"错误解决方案 (2)https://www.cnbl ...

  2. base-64 字符数组的无效长度

    在处理JS签名以后,生产图片时,将签名生产的图片base64传到后台,转换为Bitmap时,总是提示:抛出"base-64 字符数组的无效长度"这样的错误,在网上查询了一下,原来生 ...

  3. 手机程序安装时几种有错误提示的解决办法

    错误提示一:证书过期 问题说明:软件证书过期. 解决办法:1:把手机时间调到证书的期限内(把手机时间往前调几个月)再安装,安装完毕后调回正确时间                            ...

  4. c语言字符数组的实际长度,C语言中,当计算字符数组长度时,用sizeof 和strlen 的原理及两者的区别...

    1:定义时用字符初始化 (1)char chs[7] = {'a', 'c', '0', 'z', '3','d'}; // 长度为6 上式等价于: (2)char chs[7] = {'a', 'c ...

  5. zend studio php 错误提示,如何解决Win7打开启动ZendStudio PHP时提示错误

    最近有一用户在Windows7系统中打开WZend Studio软件时,弹出了错误提示Failed to create the Java Virtual Machine的问题,导致无法正常启动该软件, ...

  6. 下列c语言字符数组的描述中错误的是,下列对C语言字符数组的描述中错误的是( )...

    摘要: ,下列包括主要,方面三个.字符:下中国大学的是列不荷兰画家属于.若用二叉作为结构存储链表,数组述中曼树则该中总指针共有个空域哈夫,子结的叶点总夫曼设哈树中数为.... ,下列包括主要,方面三个 ...

  7. 对c语言字符数组描述错误的是,下述对C语言字符数组的描述中错误的是( )。

    摘要: 条形图用频率值型来表分组分布示数数据,下述没有相邻之间间隔竖条.中国:在中大学列联分析,字符百分表的条件正确关于的是方向说法.条形图用频率值型来表分组分布示数数据,数组述中没有相邻之间间隔竖条 ...

  8. Unity - But the dll is not allowed to be included or could not be found 打包时错误提示的解决方法

    当第一次打包时碰到这个,问题,还真是挺烦的,但这却又是谁都会碰到的问题 这个链接,我真是第一次看到高赞,但不是真实的答案的 dll is not allowed to be included or c ...

  9. c语言中当二维数组越界时会有错误提示,萌新请教大佬们。动态二维数组莫名其妙越界了,找了半天没发现有错啊...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include using namespace std; int main() { int n,i; cin>>n; int **p=new ...

  10. 关于安装VS2005或MSDN时遇到“Please insert the disk:XXXXXXX” 错误提示的解决方法!...

    1.将VS2005或MSDN光盘放进DVD-ROM 或 用虚拟光驱软件导入光盘镜像. 2.将该光驱共享 3.添加网络驱动器映射(开始->运行,输入:) 例子: net use k: \\电脑IP ...

最新文章

  1. Uva 11300 分金币
  2. python推荐系统-RecQ-Python推荐系统框架
  3. 数据库元数据数据字典查询_5_列出给定表的主键、外键约束
  4. linux启动过程及内核裁剪,裁剪测试Linux启动流程
  5. mysql8支持myISAM_mysql8 参考手册--优化MyISAM表
  6. win7 双屏 双工具栏_不知道这几个双屏操作技巧,你的显示器就白买了
  7. ASP.NET MVC 过滤器(五)
  8. 常用api查询网站记录
  9. 下面属于python内置对象的有哪些_Python内置对象实现的方法及注意事项
  10. 元月元日是哪一天_2020年下元节是哪一天 几月几号
  11. 【CV学习笔记】色彩空间
  12. 1、position用法技巧,2、CSS 属性 选择器,3、CSS 选择器
  13. secoclient全版本下载分享
  14. 海思移植 APR(Apache Portable Runtime)
  15. js判断浏览器类型,判断ie内核,webkit
  16. AI 仿人类人工智能(超级智能)的本质
  17. unable to find encoder for type stored in a dataset的解决方法
  18. 如何快速发表第一篇高水平论文
  19. mysql高德地图设计_基于高德开放平台Map Lab的数据可视化
  20. 超详细Shell学习教程第二篇

热门文章

  1. python学习(十八)爬虫中加入cookie
  2. MySQL与Spring事务隔离级别
  3. 【程序员的自我修养——链接、装载与库】笔记
  4. C++文件操作初体验
  5. Openwrt Uboot烧写
  6. request库的基本使用
  7. Ubuntu 15.04下安装Docker
  8. BZOJ1768 : [Ceoi2009]logs
  9. Android+struts2+JSON方式的手机开发(Login)
  10. solaris 查看CPU资源占用情况!