zoukankan      html  css  js  c++  java
  • jsp URL中文处理的几种方式

    <%public String GBToISO(String str)       
    {try{
    byte temp[]=str.getBytes("GB2312");       
    str
    =new String(temp,"ISO-8859-1");       
    return str;       
    }catch(Exception e){return str;}}       
          
    response.sendRedirect(GBToISO(
    "errmsg.jsp?errmsg=添加客户信息成功"));
    %>     
    超连接中profession为中文
    <href="cust_totallist.jsp?action=delete&page=<%=intCurrentPage%>&cust_id=<%=rs.getInt("id")%>&profession=<%=java.net.URLEncoder.encode(profession,"ISO-8859-1")%>">删除</a>       
    ////////////cust_totallist.jsp中取profession值       
    String profession=java.net.URLDecoder.decode(request.getParameter("profession").trim(),"ISO-8859-1");  
    可见,URL中编码格式为ISO-8859-1,处理中文只需将编码格式转换ISO-8859-1
    方法一:
    http://xxx.do?ptname='我是中国人'
    String strPtname = request.getParameter("ptname");    
    strPtname 
    = new String(strPtname.getBytes("ISO-8859-1"), "UTF-8");    
    方法二:
    <%@ page contentType="text/html;charset=gb2312" %>    
    <a href="ds.jsp?url=<%=java.net.URLEncoder.encode("编码的是这里","GB2312")%>">点击这里</a>    
    <%    
    //request.setCharacterEncoding("GBK");    
    if(request.getParameter("url")!=null)    
    {    
    str
    =request.getParameter("url");    
    str
    =java.net.URLDecoder.decode(str,"GB2312");    
    str
    =new String(str.getBytes("ISO-8859-1"));    
    out.print(str);    
    }
        
    %>    

    public String chinatoString(String str)    
    {    
    String s
    =str;    
    try    
    {    
    byte tempB[]=s.getBytes("ISO-8859-1");    
    s
    =new String(tempB);    
    return s;    
    }
        
    catch(Exception e)    
    {    
    return s;    
    }
        
    }
        

    function URLencode(sStr)    
    {    
    return escape(sStr).    
    replace(
    /\+/g, '%2B').    
    replace(
    /\"/g,'%22').    
    replace(/\'/g, '%27').    
    replace(/\//g,'%2F');    
    }
        

    方法三:
    如果用jstl的话,可以自己写一个el的function,调用URLEncoder.encode来编码。

    IE缺省对URL后面的参数是不编码发送的,但是tomat缺省是按ISO8859-1来进行URL解码,因此才会出现上述错误。好的做法是:
    1、在URL参数中确保用UTF-8编码之,方法可以用js函数encodeURI(),或调用自定义的el function;
    2、设置server.xml中的Connector熟悉URIEncoding="UTF-8",确保解码格式与编码格式统一;
    方法四:
    在jsp的结尾加上:
    <script>    
    for(var i=0;i<document.links.length;i++){    
    document.links[i].href
    =encodeURI(document.links[i].href);    
    }
        
    </script>    
    在action中:

    String s=request.getParameter("s"); 
    s
    =new String(s.getBytes("iso-8859-1"),"gbk");

    http://www.blogjava.net/supercrsky/articles/285926.html
  • 相关阅读:
    通用权限管理设计 之 数据库结构设计
    jQuery LigerUI 插件介绍及使用之ligerDateEditor
    jQuery LigerUI 插件介绍及使用之ligerTree
    jQuery LigerUI V1.01(包括API和全部源码) 发布
    jQuery liger ui ligerGrid 打造通用的分页排序查询表格(提供下载)
    jQuery LigerUI V1.1.5 (包括API和全部源码) 发布
    jQuery LigerUI 使用教程表格篇(1)
    jQuery LigerUI V1.0(包括API和全部源码) 发布
    jQuery LigerUI V1.1.0 (包括API和全部源码) 发布
    nginx keepalived
  • 原文地址:https://www.cnblogs.com/keepfocus/p/2352214.html
Copyright © 2011-2022 走看看