前端用base64加密后的数据,传递到后台时发现一个问题:

比如 韩飞 这个名字,base64加密后的字符串为

6Z+p6aOe

但是后端接受到参数为:

6Z p6aOe

+号变成了空格,导致后台解密的时候出现异常。
解决办法如下:
1、修改客户端,将客户端带“+”的参数中的“+”全部替换为‍“2B%”,这样参数传到服务器端时就能得到“+”了。
2、修改服务器端,将空格替换为“+”,这种方式只适用于参数中有‍“+”没有空格的情况。

本人前端对参数使用base64加密,后端对该参数使用base64解密,使用了第二种方法,替换空格为+号之后再解密。

后端解码时遇到一个问题,不能正确解码:

import sun.misc.BASE64Decoder;
  1. merchantRelPerson = merchantRelPerson.replace(" ", "+");
  2. BASE64Decoder decoder = new BASE64Decoder();
  3. byte[] b = null;
  4. b = decoder.decodeBuffer(merchantRelPerson);
  5. merchantRelPerson = new String(b, "utf-8");

最后发现,是new String时没有指定编码方式。指定之后就没问题了。

项目用的是utf-8编码,但是直接

merchantRelPerson = new String(b);

还是乱码,指定utf-8之后就好了。

最新文章

  1. django 1.8 TEMPLE_DIR和STATICFILES_DIRS配置
  2. mysql GROUP BY 与 ORDER BY 查询不是最新记录
  3. C#中的System.Speech命名空间初探
  4. C语言中的深拷贝和浅拷贝
  5. CentOS6 更改Mysql数据库的数据存放位置
  6. hdu 5104 Primes Problem
  7. django部署到最后 主页上出现的坏请求解决办法
  8. Python之路,Day18 - 开发一个WEB聊天来撩妹吧
  9. linux技术框架
  10. http://www.cutt.com/
  11. OCM读书笔记(2) - PL/SQL 基础
  12. FTP配置的一些笔记
  13. Go语言单元测试与基准测试
  14. DWH中增量数据的抽取
  15. 天坑!c++调用python,遭遇R6034问题
  16. PyCharm选择性忽略PEP8代码风格警告信息
  17. SQL语句调优三板斧
  18. node.js初识09
  19. Maven 系列 一 :Maven 快速入门及简单使用
  20. Spring Data JPA使用keywords关键字实现CAST函数

热门文章

  1. typeAliasesPackage 配置
  2. Python列表深浅复制详解
  3. 关于在虚拟机上安装iOS所遇到的问题
  4. 孤荷凌寒自学python第五天初识python的列表
  5. Day2 Activity生命周期/启动模式/最佳实践
  6. [译]如何将docker日志重定向到单个文件里
  7. SQL查询oracle的nclob字段
  8. Vue.js特性
  9. LACP学习笔记
  10. windows安装 Nodejs,NPM, CNPM