javaweb网站get方式url传值中文汉字乱码问题解决方案

概要:

javaweb网站get方式url传值中文汉字乱码问题解决方案

| |目录

url传递参数到服务器时经常会出现乱码问题,这个主要是因为浏览器地址栏编码与Java不一致。


一般来说,web中如果要传递中文参数,会采用post ,很少采用url链接中挂中文的方式,

如果非要使用,或是为了方便可以采用以下方法:



1.服务端接收后转换字符集

URL: hello.jsp?name=世界你好

Java: name=new String(name.getBytes("ISO-8859-1"), "utf-8");





2.使用URLEncoder和URLDecoder进行两次编码和一次解码

jsp:<a href="hello.jsp?name=<%=URLEncoder.encode(URLEncoder.encode("世界你好")) %>" >走着</a>

java:name=URLDecoder.decode(name);


注:编码和解码时可以指定字符集,如:URLDecoder.decode( keyWord ,"utf-8");

为什么是两次编码一次解码呢?因为服务器会默认解码一次




3.修改服务器配置,改变URI字符集

  -------------

打开 tomcat/conf/server.xml

  查找下面这部分,在最后增加一段代码就可以了。

  <Connector port="8080" maxHttpHeaderSize="8192"

  .................

  URIEncoding="UTF-8" useBodyEncodingForURI="true"

  ...............

  />

这样处理后,可以不用解码了,用EL直接取出变量就可以~~~不过编码还是要的:

发送端:<a href="hello.jsp?name=<%=URLEncoder.encode("Mr.Xia","utf-8")%>">测试</a>

接收端:直接用EL ${param.name} 就可以

  -------------


评论关闭
评论 还能输入200
评论关闭
评论 还能输入200
  • 全部评论(0)
资料加载中...
已关注 , 取消