`

java处理url中的特殊字符

 
阅读更多

java处理url中的特殊字符(如&,%...) URL(Uniform Resoure Locator,统一资源定位器)是Internet中对资源进行统一定位和管理的标志。
一个完整的URL包括如下内容:
1.         应用协议名称,包括http,ftp,file等标志
2.         资源定位,是由(.)分割等网络路径
3.         端口号,按照规定,http应用端口是80,telnet协议应用端口是23。
4.         服务器中的文件路径
5.         文件中的编码位置
一个完整的URL如下:
http://SomeUser:mypassword@www.some_server.com:8080/path/file.html
URL无法显示某些特殊符号,这个时候就要使用编码了。编码的格式为:一个百分号,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。(ASCII参考)
有些字符在URL中具有特殊含义,基本编码规则如下:
特殊含义                                                            十六进制值
1.+ 表示空格(在 URL 中不能使用空格)          %20
2./ 分隔目录和子目录                                              %2F
3.? 分隔实际的 URL 和参数                                   %3F
4.% 指定特殊字符                                                    %25
5.# 表示书签                                                             %23
6.& URL 中指定的参数间的分隔符                        %26
java中URL 的编码和解码函数
java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s);
在javascript 中URL 的编码和解码函数
escape(String s)和unescape(String s)

URL中文参数传递问题

(1)确定JSP页面头部是否有:<%@ page contentType="text/html; charset=GBK" %>
(2)用这个转码:
     String param= new String(request.getParameter("param").getBytes("ISO-8859-1"), "GBK");
(3)添加filter字符过滤器

(4)如果是通过"test.jsp?param=中文"传递参数,则需要:
     a.在传参数之前先把参数进行转码:java.net.URLEncoder.encode(param);
       取值用java.net.URLDncoder.decode(param);再转回中文
     b.在你的Tomcat目录-->conf目录-->server.xml里找出这段:
       <Connector
         port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="20000"
               disableUploadTimeout="true" <!--在里边加上这个参数-->URIEncoding="gb2312"/>

分享到:
评论

相关推荐

    java中文和特殊符号url转换

    用于中文和特殊符号路径转换,可以读取中文等一系列特殊符号

    java中URLEncoder.encode与URLDecoder.decode处理url特殊参数的方法

    主要给大家介绍了关于java中URLEncoder.encode与URLDecoder.decode处理url特殊参数的方法,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

    Base64整合DES加解密支持密钥支持解密失败返回统一字符支持加密后去除特殊字符

    Base64安全性低?...Base64加密后的字符串在URL中不安全,想去掉特殊符号?这里支持。 想在解密失败返回统一字符?这里支持。告诉我还有什么是你想要的。这里都有,如果好用,不介意的请在下面评论一番,谢谢

    jsp中URL传递中文参数的处理方法

    在页面的url中使用encodeURI(encodeURI(中文)),对中文... 您可能感兴趣的文章:js将json格式的对象拼接成复杂的url参数方法js的form表单提交url传参数(包含+等特殊字符)的两种解决方法JS根据key值获取URL中的参数值及

    两种方法解决javascript url post 特殊字符转义 + & #

    最近在用url 传特殊字符的时候发现数据丢失了。 其实不是丢失,比如 ‘+’它会当成连接字符来处理了。 一、替换成16进制字符,在这列几个常用的转换 + 空格 / ? % & = # + / ? % & &3D # 复制代码 代码...

    java过滤器对所有参数去除前后空格

    对项目中的所有参数去除前后空格过滤,统一处理参数!可以基于此过滤器实现过滤跨站脚本攻击,参数的增加,修改!敏感词汇过滤。实现原理为重写HttpServletRequestWrapper,获取参数的方法。include和 Forwarded ...

    GET 方式提交的含有特殊字符的参数

    如我在连接&lt;a&gt;A&T Plastic,在接受参数的时候就没办法读取name参数的正确值,怎么样才能正确读取,还有其他的特殊字符 字符 特殊字符的含义 URL编码 # 用来标志特定的文档位置 # % 对特殊字符进行编码 % & 分隔不同...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java学习UUID的放弃,切换到ULID

    日常开发中我们会遇到使用字符串ID,最先行到的就是UUID生成...没有特殊字符(URL安全) 单调排序顺序(正确检测并处理相同的毫秒) 时间戳 UNIX时间(以毫秒为单位) 直到公元10889年,他的空间都不会用完 48位整数

    filter对request请求拦截,对请求参数进行修改

    -- 特殊字符过滤 --&gt; &lt;filter-name&gt;sqlFilter &lt;filter-class&gt;weixin.idea.waiting.cq.controller.JsFilter &lt;filter-name&gt;sqlFilter &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-mapping&gt;

    java开源包11

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包6

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包9

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包4

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包101

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包5

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包8

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包10

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

Global site tag (gtag.js) - Google Analytics