Servlet 中文乱码的避免

来源:互联网 发布:mysql 视频 百度云 编辑:程序博客网 时间:2024/05/16 05:06
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("我是中文,你奈我何?");    }}
0 0
原创粉丝点击