一个url中的参数中含有中文,在一个页面中显示这种url时用java.net.URLEncoder.encoder("xxxxx", "gbk")将其中的中文编码,在接收页中,应该是使用java.net.Decoder.decoder("xxxxx", "gbk")解码,在服务器中是正常的,但是在本机中得到的参数显示出来就是乱码,要用字符串函数getBytes("ISO8859-1")转换后才能正常显示,而url中的中文不用encoder()编码,本机也是这样显示,而服务器上运行则得到乱码。
这是怎么回事?decoder()在本机为什么无效?
这是怎么回事?decoder()在本机为什么无效?
后台无需解码。但要保证:
1、jsp文件的编码格式为UTF-8,
2、JSP页面最上方声明:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
3、tomcat/conf/server.xml中,增加下面红色的配置项:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="500" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="300"
connectionTimeout="10000" disableUploadTimeout="true" URIEncoding="UTF-8"/> 这样一般不会出现乱码。
http://blog.csdn.net/great1681/archive/2009/04/20/4094077.aspx
什么javascript?唉,比如:
你如果要调用:/test.action?param=中文
就写成/test.ation?param=encodeURIComponent('中文'),
这和你后台处理没啥关系。然后按照我说的几步来做。
param=encodeURIComponent('中文')
难道不是javascript?
JS:var xx = encodeURIComponent(encodeURIComponent('中文'));xx.jsp?yy=xxJAVA:用URIDecode解码
jsp容器的decode难道有什么设置?