如何在使用RequestDispatcher时修复字符集编码包含html文件?
问题描述:
我有一个使用JSP和Servlet登录并注册动态Web项目。如何在使用RequestDispatcher时修复字符集编码包含html文件?
register.htm AREADY有:<meta charset="UTF-8">
注册servlet有:
`response.setContentType("text/html; charset=UTF-8");
`response.setCharacterEncoding("UTF-8");`
`response.setHeader("Cache-Control", "no-cache");`
`request.setCharacterEncoding("UTF-8");`
当用户提交(以register.html),如果它有一些错误,注册Servlet的事:
RequestDispatcher rd = getServletContext().getRequestDispatcher("/register.html"); PrintWriter out = response.getWriter(); out.println("<font color=red>" + errorsMsg + "</font>"); rd.include(request, response);
然后,浏览器显示的内容不是UTF8。 (像AA»ƒÄ'ăngkýTA我khoảN,bạncầnÃ'»“NGå½VA»>我
我怎样才能解决这个问题?
答
你有你开始写入响应的输出流或作家之前设置所有HTTP头
当你开始写的作家,你必须先写<HTML>
和<HEAD>
标签,但在你的例子你写<font>
:
PrintWriter out = response.getWriter();
out.println("<font color=red>" + errorsMsg + "</font>");
当你打电话rd.include(request, response);
你已经写了一些东西到输出,这不是你想要的。
这个字符串从哪里来?在代码或数据库中进行硬编码? – cy3er 2014-09-10 09:48:18
它来自register.html。 – storky 2014-09-10 09:52:48