zoukankan      html  css  js  c++  java
  • encodeURIComponent编码后java后台的解码

    encodeURI不会对#等特殊符号编码,当访问地址中含有#等特殊字符的时候,会自动删除#后面的字符串,导致页面有误;

    解决办法:使用encodeURIComponent编码;

    JavaScript:
    
    window.self.location="searchbytext.action?searchtext="+encodeURIComponent(encodeURIComponent(seartext));
    
    java:
    
    searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");

    为什么要两次编码的原因:

    后台java代码给searchtext赋值的时候,本身已经使用了一次解码,不过解码的结果依然不对。所以我们可以在页面上进行两次编码操作,

    这样后台自动的那次就可以抵消掉一次,然后在使用searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");进行一次解码就好了。

    注意:

    encodeURIComponent不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

    其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的

  • 相关阅读:
    getSupportFragmentManager要用在FragmentActivity及其子类中
    nginx 配置php
    openwrt 安装 ser2net 配置
    stm32 hid 键盘描述
    外部中断实验
    stm32 UART串口
    stm32 按键
    小结-stm32 驱动LED灯
    ASCII 计算机码
    debian/ubuntu安装桌面环境
  • 原文地址:https://www.cnblogs.com/xiaoQ0725/p/8584492.html
Copyright © 2011-2022 走看看