响应中文的解决

来源:互联网 发布:企业网络架构方案 编辑:程序博客网 时间:2024/06/18 05:24
    向页面响应的方法:    * getOutputStream();    * getWriter();    *** 这两个方法是互斥的.**        * 做出响应的时候只能使用其中的一种流响应.    * 输出中文乱码的处理:        * 字节流:            * 设置浏览器默认打开的编码:                * resposne.setHeader(“Content-Type”,”text/html;charset=UTF-8”);            * 设置中文字节取出的时候编码.                * “中文”.getBytes(“UTF-8”);        * 字符流:            * 设置浏览器打开的时候的编码                * resposne.setHeader(“Content-Type”,”text/html;charset=UTF-8”);            * 设置response的缓冲区的编码                * response.setCharacterEncoding(“UTF-8”);            ***** 简化的写法:response.setContentType(“text/html;charset=UTF-8”);    具体代码:    /**     * 向页面做出响应的Servlet     */        /**         * 使用字符流输出中文:         * * 有没有乱码?为什么?         *     * 一定会乱码.response使用的字符流有缓冲区的.         *     * response的字符流的缓冲区的默认的编码是ISO-8859-1.编码根本不支持中文.         * * 解决:         *     * 设置response的字符流的缓冲区的编码.         *     * 设置浏览器默认打开的时候采用的字符集编码.         * @param response         * @throws IOException         */        private void test4(HttpServletResponse response) throws IOException {            //设置浏览器默认打开的时候采用的字符编码            //response.setHeader("Content-Type", "text/html;charset=UTF-8");            //设置response的字符流的缓冲的编码            //response.setCharacterEncoding("UTF-8");            response.setContentType("text/html;charset=UTF-8");            response.getWriter().println("中文啊啊");           }        /**         * 使用字节流输出中文:         * * 有没有乱码?为什么?         *    * 不一定.          *    * 解决:         *       * 设置中文转成字节数组取出的时候的编码         *       * 设置浏览器默认打开的时候编码         */        private void test3(HttpServletResponse response) throws UnsupportedEncodingException, IOException {            //设置浏览器默认打开的时候采用的字符集编码            //response.setHeader("Content-Type", "text/html;charset=UTF-8");            response.setContentType("text/html;charset=UTF-8");            //设置中文转成字节数组的时候取出的编码            response.getOutputStream().write("中文".getBytes("UTF-8"));        }        /**         * 使用字符流响应数据         * @param response         * @throws IOException          */        private void test2(HttpServletResponse response) throws IOException {            response.getWriter().println("Hello Writer Response....");        }        /**         * 使用字节流响应数据         * @param response         * @throws IOException         */        private void test1(HttpServletResponse response) throws IOException {            response.getOutputStream().write("Hello OutputStream Response....".getBytes());        }        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {            doGet(request, response);        }    }
原创粉丝点击