演示响应正文乱码的问题--字符流

来源:互联网 发布:python 字典添加 编辑:程序博客网 时间:2024/05/13 10:22
package com.servlet.io.test;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * 演示响应正文乱码的问题--字符流输出中文 * @author penny */public class PrintWriterTest extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//test1(request, response);test2(request, response);}private void test1(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//response.setCharacterEncoding("GBK");response.setCharacterEncoding("UTF-8");//改字符流的默认编码,这句话的意思是告诉Servlet使用UTF-8转码,而不是用默认的IOS-8859-1response.setContentType("text/html;charset=UTF-8");//告诉浏览器客户端,使用什么编码进行显示  // 改字符流的默认编码,同时告诉浏览器客户端,使用什么编码进行显示String data = "不见了远处的青山";PrintWriterTest test = PrintWriterTest.this;test.doGet(request, response);PrintWriter writer = response.getWriter();//如果response.getCharacterEncoding()为空或者null,默认使用ISO-8859-1(西欧)//所以不是乱码,而是没有对应的字符,显示"????????"writer.write(data);}private void test2(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//response.setCharacterEncoding("GBK");//response.setCharacterEncoding("UTF-8");//改字符流的默认编码,这句话的意思是告诉Servlet使用UTF-8转码,而不是用默认的IOS-8859-1response.setContentType("text/html;charset=UTF-8");//告诉浏览器客户端,使用什么编码进行显示,其实,可以只保留这一句话,上面那句可以不写String data = "不见了远处的青山";PrintWriter writer = response.getWriter();//如果response.getCharacterEncoding()为空或者null,默认使用ISO-8859-1(西欧)//所以不是乱码,而是没有对应的字符,显示"????????"writer.write(data);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

原创粉丝点击