当在Sevret中嵌入html是使用中文是,运行程序会发现浏览器显示的中文乱码了,此时在Sevret中应该制定参数的编码集,因为不指定参数的编码集时会默认为iso-8859-1进行编码,所以会出现浏览器乱码问题。
在servlet中通过response方法指定所写的html代码以utf-8进行编码,同时也告知浏览器以utf-8进行解码:
response.setContentType("text/html;chartset = UTF-8");
当浏览器中输入中文时,Servlet接收到的中文如果不指定编码集时也会乱码,所以需要接收数据的servlet也要指定编码集:
request.setCharacterEncoding("UTF-8");
通常为了简便,直接在Servlet中将两条代码均写:(但是此种方法仅适用于post方式提交的情况)
response.setContentType("text/html;chartset = UTF-8");
request.setCharacterEncoding("UTF-8");
如果使用get方式提交上述的方法对中文解码无效!
接收到的中文数据要用String的方法进行解码;
String checkName = request.getParameter("checkName");
checkName = new String(checkName.getBytes("iso-8859-1"), "utf-8");