zoukankan      html  css  js  c++  java
  • URL传参时中文参数乱码的解决方法

    URL传参时,中文参数乱码的解决:

    今天在工作中遇到了这样的一个问题,在页面之间跳转时,我将中文的参数放入到url中,使用location进行跳转传参,但是发现接收到的参数值是乱码。我的代码是这样写的:

    1.跳转前,对url进行了编码:

    url = EMPTools.encodeURI(url);

    window.location = url;

    2.接收时,对url进行了解码:

    url = decodeURI(url);

    发现:接收到的信息并非正常的那种%和数字的编码,而是彻底的乱码(有方框有英文字母);

    费解!

    查找资料后,发现有些人的解决方式是将url二次编码,于是改为:

    1.跳转前,对url进行二次编码:

    url = EMPTools.encodeURI(EMPTools.encodeURI(url));

    window.location = url;

    2.接收时,对url进行了解码:

    url = decodeURI(url);

    发现:这次接收到的是含有%和数字的正常的url编码,但仍然不是汉字。

    挠头!

    细想后,既然编码时时二次编码,那解码时也应该是二次解码啊!

    于是修改为:

    1.跳转前,对url进行二次编码:

    url = EMPTools.encodeURI(EMPTools.encodeURI(url));

    window.location = url;

    2.接收时,对url进行二次解码:

    url = decodeURI(decodeURI(url));

    结果:终于接收到正常的中文参数了!

    疑问:为什么需要进行二次编码呢?

    备注:

    在jsp页面的中,最好能在调用request的所有方法的语句之前,加上设置request编码类型的代码:

    request.setCharacterEncoding("UTF-8");

    参考:http://blog.sina.com.cn/s/blog_683b7a840100iqh5.html

  • 相关阅读:
    如何在markdown隐藏代码块
    html基础
    驻留机制
    字典
    echarts简单使用
    selenium的基本操作
    Excel上传、下载、models 自定义字段、批量执行(可选)
    django之自定义标签(路径url反向解码)
    邮件自动生成发送用例报告
    前台获取后台保存的数据
  • 原文地址:https://www.cnblogs.com/duffy/p/4921078.html
Copyright © 2011-2022 走看看