关闭

Servlet 中文乱码的避免

标签: servlet乱码
358人阅读 评论(0) 收藏 举报
分类:
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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:121991次
    • 积分:2697
    • 等级:
    • 排名:第14899名
    • 原创:149篇
    • 转载:2篇
    • 译文:1篇
    • 评论:21条
    最新评论