`

JAVA 中URL链接中文参数乱码的若干处理方法

阅读更多
转自:http://www.sudu.cn/info/html/edu/20080208/275680.html
JAVA 中URL链接中文参数乱码的若干处理方法,目前整理收录如下:

方法一:

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",确保解码格式和编码格式统一;

方法四:

<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");

以上方法是收聚了一些网友所讲的解决方法 。

分享到:
评论

相关推荐

    apache-tomcat-8.0.33中文.zip

    例如,设置`Connector`元素的`URIEncoding`属性为`UTF-8`,确保URL中的中文参数正确解码。 3. **JSP和Servlet支持**:Tomcat 8.0.33 支持JSP 2.3和Servlet 3.1规范,这意味着开发者可以利用这些新特性和API来创建...

    Jsp中request的3个基础实践

    在上述示例中,虽然没有展示这种场景,但理解这个方法对于处理多值参数是必要的。 4. **类型转换与异常处理**: `request.getParameter()`返回的是字符串类型,如果需要其他类型(如整数或日期),则需要进行类型...

    用Python写网络爬虫-35页

    *中文网页的乱码问题:解决方法是编码转换。 * 设置延迟时间:例如,设置每10秒翻开一个新的网页,以避免占用过多的带宽。 在实践中,爬虫的策略是多种多样的,例如深度优先、广度优先等。根据实际情况选择合适的...

    用Python写网络爬虫-35

    传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。 网络爬虫有什么用?爬虫可以作为通用搜索引擎网页收集器...

    2021-2022计算机二级等级考试试题及答案No.16441.docx

    4. DatagramSocket 阻塞操作:在 Java 网络编程中,使用 DatagramSocket 的 `receive()` 方法会阻塞,等待数据包的到来。 5. 交叉表查询字段数量:创建交叉表查询时,通常需要指定至少三个字段:行标题、列标题和...

    易语言程序免安装版下载

    OpenGL支持库中的部分英文名称常量已改为中文,并统一在所有常量名称之前加前缀“GL_”,以减少与其它库的冲突机率。 3. 互联网支持库中的“FTP目录列表”命令返回的文件时间改为FTP服务器返回的原始时间,不做...

    jpivot学习总结.doc

    baseDisplayURL 否 String 是 显示图表的链接,链接的后面还要添加参数“ ?=filename=[ 临时图表文件的名称 ] ” controllerURL 否 String 是 链接到 JPivot Controller 的 URL ,该属性在一些复杂环境下...

    JspRun!社区论坛系统 v6.0 bulid 090423 GBK 源码版.rar

    24、修复了Wap设置时的页面错误、wap查看回帖时的分页信息、wap发帖回帖乱码的问题 25、修复了新用户注册无法保存个性签名等若干bug 26、修复了三元运算符以兼容更多的web服务器(如jboss、resin等) 27、修复了...

    JspRun!社区论坛系统 v6.0 bulid 090424 GBK 安装版.rar

    24、修复了Wap设置时的页面错误、wap查看回帖时的分页信息、wap发帖回帖乱码的问题 25、修复了新用户注册无法保存个性签名等若干bug 26、修复了三元运算符以兼容更多的web服务器(如jboss、resin等) 27、修复了...

Global site tag (gtag.js) - Google Analytics