`

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

    博客分类:
  • java
阅读更多

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

 

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

 

分享到:
评论

相关推荐

    JAVA(Web)中URL链接中文参数乱码:

    JAVA(Web)中URL链接中文参数乱码,如,java web中的超链接&lt;a&gt;&lt;/a&gt;标签传中文参数,提交到servlet中后,解决乱码问题!

    html 中文乱码 HTML超链接中文乱码问题分析及解决方法

    如果直接拼接,传到后台Action的参数对象中后取出会是乱码,需要编码后再拼接到URL上。 解决方法是在Action中添加一个成员变量,保存编码后的中文参数。在vm页面渲染时取出这个变量值,再拼接超链接。 在这里碰到的...

    JS URL传中文参数引发的乱码问题

    1、在JS里对中文参数进行两次转码 代码如下: var login_name = document.getElementById(“loginname”).value; login_name = encodeURI(login_name); login_name = encodeURI(login_name); 2、在服务器端对...

    HttpClient以及获取页面内容应用

    压缩包中含有多个文档,从了解httpclient到应用。 httpClient 1httpClint 1.1简介 HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持...

    Java学习笔记-个人整理的

    {2.8}框架中移动的小球}{59}{section.2.8} {2.9}抽象与接口}{59}{section.2.9} {2.10}访问控制}{60}{section.2.10} {2.10.1}类的属性}{60}{subsection.2.10.1} {2.10.2}类的方法}{61}{subsection.2.10.2} {...

    fckedit编辑器

    查找资料:TOMCAT 链接参数有中文时,乱码解决方法 http://hi.baidu.com/jadestone/blog/item/7564deefc9192d36acafd5be.html 修改tomcat-home/conf/server.xml 方法一: 在两处地方加上URIEncoding="utf-8": ...

    ssh(structs,spring,hibernate)框架中的上传下载

     文件数据存储在Blob类型的FILE_CONTENT表字段上,在Spring中采用OracleLobHandler来处理Lob字段(包括Clob和Blob),由于在程序中不需要引用到oracle数据驱动程序的具体类且屏蔽了不同数据库处理Lob字段方法上的...

    易语言程序免安装版下载

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

    asp.net知识库

    在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中...

    编辑器 KindEditor 4.0.4

    Bugfix: [IE] 两张相邻图片添加超级链接,修改其中一个链接,另外一个链接也会被修改。 Bugfix: 内嵌脚本的小于号会被转义导致脚本错误。 Bugfix: 分页符在不同浏览器下生成的HTML代码不一致。 Bugfix: [IE6-7] ...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    W3C组织正在研究一种名为RDF(Resource Description Framework)的metadata处理方法,可以自动交换信息,W3C宣称,使用RDF配合数字签名,将使网络中存在"真实可信"的电子商务。 六.显示 单独用XMl不能显示页面,...

    jpivot学习总结.doc

    controllerURL 否 String 是 链接到 JPivot Controller 的 URL ,该属性在一些复杂环境下比如 Portal 之类就很有用。 4.3. chooseQuery 从前面创建的若干个查询当中选择一个合适的查询(通过查询名称进行选择...

Global site tag (gtag.js) - Google Analytics