`
zengshaotao
  • 浏览: 753294 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

encodeURL

 
阅读更多

.encodeURL函数主要是来对URI来做转码,它默认是采用的UTF-8的编码。.

UTF-8编码的格式:一个汉字来三个字节构成,每一个字节会转换成16进制的编码,同时添加上%号.

假设页面端输入的中文是一个“中”,按照下面步骤进行解码:

1、第一次encodeURI,按照utf-8方式获取字节数组变成[-28,-72-83],对字节码数组进行遍历,把每个字节转化成对应的16进制数,这样就变成了[E4,B8,AD],最后变成[%E4,%B8,%AD]  此时已经没有了多字节字符,全部是单字节字符。

2、第二次encodeURI,进行编码,会把%看成一个转义字符,并不编码%以后字符,会把%编码成%25.把数组最后变成[%25E4,%25B8,%25AD]然后就把处理后的数据[%25E4,%25B8,%25AD]发往服务器端,当应用服务器调用getParameter方法,getParameter方法会去向应用服务器请求参数,应用服务器最初获得的就是发送来的[%25E4,%25B8,%25AD],应用服务器会对这个数据进行URLdecode操作,应用服务器进行解码的这一次,不管是按照UTF-8,还是GBK,还是ISO-8859,都能得到[%E4,%B8,%AD],因为都会把%25解析成%.并把这个值返回给getParameter方法。

3、再用UTF-8解码一次,就得到中了。想想看,如果不编码两次,当服务器自动解码的时候,假如是按照ISO-8859去解码UTF-8编码的东西,就是会出现乱码。

 

分享到:
评论

相关推荐

    用JSP做的网上交友页面

    <a href="<%=response.encodeURL("showMember.jsp")%>">浏览会员| <a href="<%=response.encodeURL("register.jsp")%>">会员注册| <a href="<%=response.encodeURL("login.jsp")%>">会员登录| ...

    EncodeDecode经典加密解密+VB源码.rar

    EncodeDecode经典加密解密+VB源码.rarEncodeDecode经典加密解密+VB源码.rarEncodeDecode经典加密解密+VB源码.rarEncodeDecode经典加密解密+VB源码.rar

    php二维码扩展库exqrcode.zip

    $instance->encodeUrl("http://www.baidu.com"); var_dump($instance->writeToFile("/tmp/qrurl.png")); $arr = array("N" => "name","TEL" => "13900000000","EMAIL" => "email"  , "ADDR" => "address" ,...

    jsp java 购物车

    <%String str=response.encodeURL("buybook.jsp");%> <FORM action="<%=str%>" Method="post" > <P><BR>输入要订购的书的序列号: 提交"> 查询到如下记录: (); %> 如果准备订购该书,请填写订单,点击"添加...

    java-servlet-api.doc

    Java Servlet API说明文档 绪言 ... 谁需要读这份文档 这份文档描述了JavaServletAPI的最新版本2.1版。所以,这本书对于Servlet的开发者及servlet引擎的开发者同样适用。 JavaServletAPI的组成 ...这两个软件包的同时...

    servlet2.4doc

    The default behavior of this method is to call encodeUrl(String url) on the wrapped response object. encodeUrl(String) - Method in interface javax.servlet.http.HttpServletResponse Deprecated. As of ...

    SimpleServlet.zip

    out.println(response.encodeURL("cart")); out.println("\"method=\"POST\">"); out.println("<table cellspacing=\"5\" cellpadding=\"5\"><tr>"); out.println("<td align=\"center\"><b>种类</b></td>")...

    Excel公式与函数大辞典.宋翔(带书签高清文字版).pdf

    本书从函数功能、函数格式、参数说明、注意事项、Excel 版本提醒、案例应用、交叉参考7 个方面,全面、细致地介绍了Excel 2016/2013/2010/2007/2003 中公式和函数的使用方法、实际应用和操作技巧。...

    字符串转EnCode_c#

    字符串转EnCode_c# 字符串转EnCode_c# 字符串转EnCode_c# 字符串转EnCode_c# 字符串转EnCode_c# 字符串转EnCode_c# 字符串转EnCode_c# 字符串转EnCode_c#

    portal开发portlet的一些知识

    图片路径的写法 <IMG >/testportlet/images/mark.gif"> <IMG src="%=renderResponse.encodeURL(renderRequest.getContextPath()+">"> 其中renderResponse.encodeURL表示编码。目录结构截图: 。。。 。。。

    PHP rawurlencode与urlencode函数的深入分析

    结论:rawurlencode遵守是94年国际标准备忘录RFC 1738,urlencode实现的是传统做法,和上者的主要区别是对空格的转义是’+’而不是’ ′javascript的encodeURL也是94年标准, 而javascript的escape是另一种用”%xxx”...

    java中Cookie被禁用后Session追踪问题

    一.服务器端获取Session对象依赖于客户端携带的Cookie中的JSESSIONID数据。...在 Session1Servlet中,使用response.encodeURL(url) 对超链接路径拼接 session的唯一标识 // 当点击 的时候跳转到 sess

    lua-base64mix:base64编码解码模块

    lua-base64mix base64编码/解码模块 安装 ...应用程序接口 编码 str, err = base64mix.encode( src:...str, err = base64mix.encodeURL( src:string ) 此函数会将参数编码为 base64url 格式。 解码 str, err = base64

    ios获取数据之encodeURI和decodeURI的实例

    在APP开发过程中,免不了要进行ios的数据处理,在ios传递数据的过程中,会出现JSON数据获取不到的情况,这时候就轮到encodeURI 和 decodeURI出马了。...所以,此函数别名为 encodeURL 不为过,相当于 PH

    jsqrcodeSample:安卓手机,js调用系统摄像头扫码二维码并识别,推荐火狐以及谷歌浏览器

    shot目录目录结构├── 1.sh├── README.md├── node_modules│ ├── connect│ ├── debug│ ├── depd│ ├── destroy│ ├── ee-first│ ├── encodeurl│ ├── escape-html│ ├──...

    servlet学习笔记

    String newURL=response.encodeURL(oldURL); 目的:保证session在cookie禁用时仍然有效 http://localhost:8080/XServlet;jsessionid=fdfsdddde45234435235 GET session id 不再通过请求头中传送...

    javascript中encodeURI和decodeURI方法使用介绍

    一、基本概念 encodeURI和decodeURI是成对来使用的,因为浏览器的地址栏有中文字符的话,可以会出现不可预期的错误,所以可以encodeURI把非英文字符转化为英文编码,decodeURI可以用来把字符还原回来。...

    Excelize文档类库-其他

    CONCATENATE, COUNT, COUNTBLANK, CUMIPMT, CUMPRINC, DATE, DATEDIF, DB, DDB, DEC2BIN, DEC2HEX, DEC2OCT, DOLLARDE, DOLLARFR, EFFECT, ENCODEURL, EXACT, FALSE, FIND, FINDB, FISHER, FISHERINV, FIXED, FV, ...

    ASP中只有UrlEncode,没有Urldecode问题的解决方法?

    在ASP中传递参数时有一个很有用的系统函数Server.UrlEncode,可以将一些非字母数字的特殊符号转换成标准URL编码(其实就是16进制ASC码),这样就解决了参数传递问题,然后我以为也提供了Server.UrlDecode,但使用后...

Global site tag (gtag.js) - Google Analytics