response.setContentType("text/html");
可见浏览器对后台提交的字段的一个识别作用,这个字段代表提交的字段是“文本/html”,给浏览器识别,这样后台提交文本时候的时候会出现中文字符是以文本的形式提交的,而提交的字段是使用GBK格式(因为能够在终端正确显示)必然因为输入和输出流的不同,导致中文字符出现编码问题,所以必须对输入和输出流进行编码通化,具体方法就是加如下代码:
// 设置输入的编码格式为utf-8request.setCharacterEncoding("utf8");// 设置输入的编码格式为utf-8response.setCharacterEncoding("utf8");
完整的操作片段为:
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 设置输入的编码格式为utf-8request.setCharacterEncoding("utf8");// 设置输入的编码格式为utf-8response.setCharacterEncoding("utf8");// 给浏览器的标示,该字体为text/htmlresponse.setContentType("text/html");PrintWriter out = response.getWriter();// 做一些输出操作...........// out.println();out.flush();out.close();}
这样便能输出中文了。