javaweb开发中中文乱码问题的解决方案

1.以POST方式提交包含中文字符的表单

WEB容器默认采用的编码方式是ISO-8859-1,在Servlet和JSP里面,采用getParameter()方法获取的参数是经过ISO-8859-1编码的字符,这就是导致了乱码的出现。其实,对于POST的HTTP请求,可以在程序里讲请求的字符编码修改为GBK,如果请求处理完以后,返回给浏览器的内容也包含中文的话,还需要设置内容的编码方式也是GBK。

对于Servlet来说,需要加上一下这两句:

request.setCharacterEncoding("GBK");

response.setContentType("text/html;charset=GBK");

对于JSP,则需要加上这两句:

<%@page contentType="test/html;charset=GBK"%>

<%request.setCharacterEncoding("GBK");%>

2.以GET方式提交包含中文字符的表单

GET方式的中文字符是包含在URL里面的,不属于HTTP请求的正文部分,采用setCharacterEncoding()方式是没有作用的,需要以下代码,将字符串按照指定的编码方式进行重新装配。

String param=request.getparameter("param");

param=new String(param.getBytes(),"GBK");

3.JSP文件的编码问题

JSP文件里本身可能会包含中文字符,但是由于编辑器的设置不同也有可能产生中文乱码问题。例如,采用记事本写好的JSP文件可能编码格式是GBK的,但是如果将它复制到编码为UTF-8的eclipse里面,JSP的中文字符就变成乱码了。所以需要采用如下代码设置JSP的编码方式:

<%@page language="java" pageEncoding="UTF-8"%>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值