写了个简单的从jsp提交用户名密码到servlet的程序。通过servlet直接在页面输出用户名和密码。不料显示中文名是乱码。该程序不涉及数据库。字符编码我默认都是UTF-8。详细情况见截图。
4 回答

ABOUTYOU
TA贡献1812条经验 获得超5个赞
问题在于custname,也就是你发送请求的数据编码和接收的不一致。看看你请求页面的编码是什么,gbk或者utf-8,如何后台
request.setCharacterEncoding("UTF-8")或者request.setCharacterEncoding("GBK").

不负相思意
TA贡献1777条经验 获得超10个赞
在response.getWriter()之前加上这两行代码试试:
response.setCharacterEncoding("utf-8"); response.setContentType("text/html; charset=utf-8");

翻阅古今
TA贡献1780条经验 获得超5个赞
在获取请求参数值之前加上:
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
或者写一个拦截器,在web.xml配置上就好了
public class EncodingFilter implements Filter { @Override public void init(FilterConfig arg0) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); filterChain.doFilter(request, response); } @Override public void destroy() { }
添加回答
举报
0/150
提交
取消