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

  • 相关阅读:
    CF 461B Appleman and Tree
    POJ 1821 Fence
    NOIP 2012 开车旅行
    CF 494B Obsessive String
    BZOJ2337 XOR和路径
    CF 24D Broken robot
    POJ 1952 BUY LOW, BUY LOWER
    SPOJ NAPTIME Naptime
    POJ 3585
    CF 453B Little Pony and Harmony Chest
  • 原文地址:https://www.cnblogs.com/duffy/p/4921078.html
Copyright © 2011-2022 走看看