解决java.net.URLDecoder.encode与EncodeURI乱码问题
2016-02-24 14:41
483 查看
主要重视加密与解码的顺序,在后台加密一次,传给前台解码,由于对中文编码的内部处理不一样,会出错,所以应该先加密两次再传输给前台,这样前台接到后第一次解码即可还原后台加密一次的编码(这时再在前台解码一遍,即可得到原始数据),然后在传给后台,后台接收到一次加密的数据后,由于js与java传输的过程会自动编码,然后解码两次,后台即可得到原始数据。
在项目中, 将一个字符串从后台(J2EE项目)传到前台前台页面(html)再传到后台(J2EE项目),
在后台先通过编码(两次):
java代码: java.net.URLDecoder . encode (req.getParameter("value"),"UTF-8");
java.net.URLDecoder . encode (req.getParameter("value"),"UTF-8");
再通过js中的encodeURI函数对字符串进行解密(一次):
js代码: value =decodeURI(value);
然后再后台通过解码(两次):
java代码: java.net.URLDecoder . decode (req.getParameter("value"),"UTF-8");
java.net.URLDecoder . decode (req.getParameter("value"),"UTF-8");
对加密的字符串进行解析就行了!这样就解决了请求中文参数乱码问题!
在项目中, 将一个字符串从后台(J2EE项目)传到前台前台页面(html)再传到后台(J2EE项目),
在后台先通过编码(两次):
java代码: java.net.URLDecoder . encode (req.getParameter("value"),"UTF-8");
java.net.URLDecoder . encode (req.getParameter("value"),"UTF-8");
再通过js中的encodeURI函数对字符串进行解密(一次):
js代码: value =decodeURI(value);
然后再后台通过解码(两次):
java代码: java.net.URLDecoder . decode (req.getParameter("value"),"UTF-8");
java.net.URLDecoder . decode (req.getParameter("value"),"UTF-8");
对加密的字符串进行解析就行了!这样就解决了请求中文参数乱码问题!
相关文章推荐
- Struts2 带参数的结果集
- eclipse如何提供自动提示
- Spring 通过注解方式实现AOP切面编程
- 解决MyEclipse开启后总是不停的在Update index
- [Selenium] Java代码获取,设置屏幕分辨率
- Java 随笔记录
- Eclipse中引用依赖库library失败的原因
- Eclipse 创建Maven工程
- JAVA-js中比较日期大小
- Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析
- HashMap集合
- Spring中的设计模式
- java学习笔记-static关键字的用法
- 配置JDK环境变量
- Hadoop-1.2.1 Eclipse开发环境配置
- Java动态代理、cglib动态代理
- java_内部类学习笔记(二)
- Struts2 全局结果集
- 使用Spring的MailSender发送邮件
- 使用Spring的MailSender发送邮件