java web中文乱码


在servlet中如果是以

一、字节流形式读取中文到response中时:

即:

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.getOutputStream().write("你好".getBytes());
	}

这个时候如果出现乱码:那么就要求response告诉浏览器我现在的编码格式是utf-8,

即:


	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		//或者使用下面的方法
//		response.setHeader("content-type", "text/html;charset=utf-8");
		response.getOutputStream().write("你好".getBytes());
	}

二、字符 流形式读取中文到response中时:


即:

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.getWriter().write("你好");
	}


这个时候如果出现乱码:那么就要求response告诉浏览器我现在的编码格式是utf-8,同时让response编码时选择utf-8

即:

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//改变response的编码格式
		response.setCharacterEncoding("utf-8");
		//告诉浏览器我的编码是utf-8
		response.setContentType("text/html;charset=utf-8");
		response.getWriter().write("你好");
	}


对于jsp
如果servlet传递数据到JSP,或者是jsp中的数据在显示中文的时候是乱码,那么看一下这个jsp文件的开头

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>

若是上面这种情况。就要求把pageEncoding的编码格式由ISO-8859-1"改成utf-8



未完 ---------------------待续












你可能感兴趣的:(Java Web)