package com.pythoncat.web.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LServlet extends HttpServlet {
/**
* 演示避免中文乱码的情况(UTF-8)
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//1. 中文乱码的根源:
/**
* <pre>
* 首先,这是一个忧伤的故事。
* 在服务器端,进行响应的时候,会将任何的字符串通过默认的编码转自字节数组,以便计算机能够识别。
* 而tomcat默认的编码方式是iso8859-1。但是,事实上呢,iso8859-1本身不支持中文字符串的编码与解码
* 这样一来,中文必然是乱码。
* 那么,为了改变这一状况。我们指定服务器这边响应的编码与解码方式为UTF-8.这样一来,至少,服务器
* 这边呢,在编码与解码的时候,不会产生乱码了。
* 但是,这并没有避免乱码的出现。(在客户端的出现),因为,大部分浏览器,在中国大陆,使用的字符串的
* 默认解码/编码方式为GBK。这样一来,utf-8转换的字节数组,通过gbk去解码,依然是个乱码。
* 那么,我们就得让浏览器也使用utf-8去解码。怎么做呢?就是设置一个特殊的响应头,告诉浏览器,我的
* 编码方式,让浏览器使用相同的方式去解码,这样就顺利解决了中文的乱码情况。
* </pre>
*/
response.setContentType("text/html;charset=utf-8");
//这一句就是将自己设置成UTF-8编码,并作为响应头告诉浏览器我使用的编码方式!
response.getWriter().print("我是中文,你奈我何?");
}
}
Servlet 中文乱码的避免
最新推荐文章于 2019-05-24 14:58:04 发布