[转帖]JSP乱码解决方案.doc
上传人:sy****28 上传时间:2024-09-13 格式:DOC 页数:12 大小:56KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

[转帖]JSP乱码解决方案.doc

[转帖]JSP乱码解决方案.doc

预览

免费试读已结束,剩余 2 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

JSP页面传递参数会出现乱码解决方法如下:一、使用更改Tomcat的方法。这个方法简单,但是需要改动的地方是服务器软件级别的,如果稍微变动系统将无法正确转码,移植性不高。1、来到tomcat目录,找到conf目录下的server.xml文件,打开,找到Connector标签,在最后添加URIEncoding=‘GBK’,效果如下:viewplaincopytoclipboardprint?Connectorport=8080maxThreads=150minSpareThreads=25maxSpareThreads=75enableLookups=falseredirectPort=8443acceptCount=100debug=0connectionTimeout=20000disableUploadTimeout=trueURIEncoding=″GBK″/Connectorport=8080maxThreads=150minSpareThreads=25maxSpareThreads=75enableLookups=falseredirectPort=8443acceptCount=100debug=0connectionTimeout=20000disableUploadTimeout=trueURIEncoding=″GBK″/这种方法对get这个方法测试成功。2、在每个Jsp页面添加如下代码viewplaincopytoclipboardprint?%@pagepageEncoding=”gb2312″%%@pagecontentType=”text/html;charset=gb2312″%%request.setCharacterEncoding(”gb2312″);%%@pagepageEncoding=”gb2312″%%@pagecontentType=”text/html;charset=gb2312″%%request.setCharacterEncoding(”gb2312″);%编码方式也可以改成GBK,支持繁体中文。重启Tomcat,这一步很重要,否则可能看不到效果。这种方法对post测试成功。建议两种同步使用。二、更该Java程序法1、我的程序是这样的:publicclassThreeParamsextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType(text/html;charset=GBK);...}}法2、首先对取得字符串按照iso8859-1进行解码转换,然后再按照gb2312进行编码,最后得到正确的内容。示例代码如下:Stringpara=newString(request.getParameter(para).getBytes(iso8859-1),gb2312);具体的原因是因为美国人在写tomcat时默认使用iso8859-1进行编码造成的。然而,在我们的servlet和jsp页面中有大量的参数需要进行传递,这样转换的话会带来大量的转换代码,非常不便。a.jsp页面内容:%@pagelanguage=javaimport=java.util.*pageEncoding=GB2312%formaction=b.jspname:inputtype=textname=nameinputtype=submit/formb.jsp页面内容:%@pagelanguage=javaimport=java.util.*pageEncoding=GB2312%%Stringname=request.getParameter(name);%body%=name%/body现象:中文乱码,比如“??????”解决方法如下:方法一:-----------尝试过,有效但确实不可取1.在b.jsp中把pageEncoding=GB2312改为pageEncoding=ISO8859-1虽然这样b.jsp页面显示的内容还是乱码,但是不是那种“??????”的乱码,而是一些特殊字符2.然后在浏览器中查看菜单中修改成GB231