在Servlet中利用response向客户端浏览器输出中文时有时会遇到乱码问题,总结如下:

response输出流有两种,一是以字节流输出,一是以字符流输出。

一、以字节流输出:
 1.默认编码输出木有乱码
 2.通过response的setHeader方法设置编码utf-8,无乱码
 3.通过response的setContentType方法设置编码utf-8,无乱码
 4.输出数字建议以字符串形式输出

二、以字符流输出:
 1.默认查iso-8859-1码表(SUN的Servlet规范要求的) ,客户端显示乱码
 2.通过response的setHeader方法设置编码utf-8,无乱码
 3.通过response的setContentType方法设置编码utf-8,无乱码

字节流以默认编码输出:

 public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 以字节流用默认编码向客户端输出中文数据,木有乱码
response.setContentType("text/html"); String str = "喔呵呵呵呵";
OutputStream out = response.getOutputStream();
out.write("</br></br><div align=\"center\" style=\"font-size:25px; color:red\">".getBytes()); out.write(str.getBytes()); out.write("</div>".getBytes());
out.close();
}

字节流设置编码为utf-8输出:

 public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { // 通知客户端查UTF-8码表
response.setContentType("text/html;charset=utf-8"); // 或者:
// response.setHeader("Content-Type","text/html;charset=utf-8"); String str = "喔哈哈哈哈";
OutputStream out = response.getOutputStream();
out.write("</br></br><div align=\"center\" style=\"font-size:25px; color:red\">".getBytes()); out.write(str.getBytes("utf-8")); out.write("</div>".getBytes());
out.close();
}

字节流输出数字:

 public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setHeader("Content-Type", "text/html;charset=utf-8"); int i = 98;
OutputStream out = response.getOutputStream(); out.write("</br></br><div align=\"center\" style=\"font-size:25px; color:red\">"
.getBytes()); // out.write(i); 会输出字母b // 输出数字98
out.write((i + "").getBytes()); out.write("</div>".getBytes());
out.close();
}

字符流设置编码为utf-8输出:

 public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 通知客户端查UTF-8码表
response.setContentType("text/html;charset=utf-8");
// 或者:
// response.setHeader("Content-Type", "text/html;charset=utf-8"); String str = "喔嘿嘿嘿嘿";
PrintWriter out = response.getWriter();
out.write("</br></br><div align=\"center\" style=\"font-size:25px; color:red\">"); out.write(str); out.write("</div>");
out.flush();
out.close();
}

Servlet响应的中文字符集问题的更多相关文章

  1. Java中关于Servlet中请求中文乱码及文件下载

    1,Servlet请求响应中文乱码问题 package com.demo.servlet; import java.io.PrintWriter; import java.io.IOException ...

  2. 解决servlet响应乱码问题

    当我们使用servlet响应中文时,浏览器接收的内容就会乱码显示出来,原因是响应数据时使用的是utt-8编码,而浏览器解析响应用的的编码却不是utf-8,这样就会造成乱码. 解决办法: respons ...

  3. 使linux服务器默认使用中文字符集zh_CN.UTF-8

    一.问题描述和相关概念 linux服务器的字符集设置可能影响到网站页面出现 “???” 等问号乱码,还有可能导致文件中的汉字部分出现乱码. locales设置:语言设置选项   linux真的是一个非 ...

  4. Ubuntu下设置中文字符集支持(解决中文乱码问题)

    一. Ubuntu默认的中文字符编码 Ubuntu默认的中文字符编码为zh_CN.UTF-8,这个可以在/etc/environment中看到: sudo gedit /etc/environment ...

  5. 各种编码中汉字所占字节数;中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030

    vim settings set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936,latin1set termencoding=utf-8se ...

  6. 中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030

    中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030 内容详见: http://www.360doc.com/content/11/1004/12/6139921_1 ...

  7. 用Delphi的TIdHttp控件发起POST请求和Java的Servlet响应

    http://blog.csdn.net/panjunbiao/article/details/8615880   用Delphi的TIdHttp控件发起POST请求和Java的Servlet响应

  8. 中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030

    中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030 cp936是微软自己发布的用在文件系统中的编码方式.而bg2312是中国国家标准.我明白mount -t vfa ...

  9. 解决 Docker Image的UTF-8中文字符集的问题(以Oracle为例)

    最近因业务需要,需要搭建一个Oracle数据库,当然Oracle数据库支持Linux,但是在上面搭建很是复杂,所以我想起了Docker ,果然在上面发现了一个OracleDB的镜像,所以下载之,运行, ...

随机推荐

  1. 修改镜像文件EI.CFG

    一.EI.cfg说明 Windows 7 安装光盘中存在着 SOURCES\EI.CFG 这样一个配置文件.EI.cfg 是特定于 Windows 安装程序的配置文件,用于确定在安装过程中应该使用哪种 ...

  2. Hadoop 数据库 - HBase

    转自:http://blog.csdn.net/iAm333 1 什么是HBase? HBase,是Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统.使用HBas ...

  3. Rem实现自适应初体验

    第一次做移动端的页面,遇到的第一个问题就是移动端的轮播图.其实轮播图的插件有很多,但是完全满足需求的并不容易找. 需求: 1.实现基本的触屏轮播图效果 2.传入非标准比例的图片,可以自动平铺(有时候图 ...

  4. SPOJ AMR12A The Black Riders --二分+二分图最大匹配

    题意:有n个人,m个洞.每个洞能容纳一个人,每个人到每个洞需要花费一些时间.每个人到达一个洞后可以花C的时间来挖一个洞,并且最多挖一个洞,这样又能多容纳一人.求能使至少K个人进洞的最短时间. 解法:看 ...

  5. man 在线手册

    http://man7.org/linux/man-pages/man3/fwrite.3.html

  6. PHP 魔术引号

    1.魔术引号的作用是什么? ​ 魔术引号设计的初衷是为了让从数据库或文件中读取数据和从请求中接收参数时,对单引号.双引号.反斜线.NULL加上一个一个反斜线进行转义,这个的作用跟addslashes( ...

  7. f2fs解析(一)f2fs如何解决wandering tree

    wandering tree问题是log-structured 文件系统(LFS) 特有的一个问题,因为LFS的脏数据是追加更新的,所以如果一个数据块变脏了,那么那个数据块的直接索引块.间接索引块都会 ...

  8. 快捷键forMac

    1.手动补全快捷键 设置completion+basic或者completion+smartType 2.快速导入指定API的包 command+1

  9. JqueryMobile入门基础附源码下载

    最近要做一个手机版的网站,所以就了解了一点JqueryMObile,下面是我整理的笔记,现在分享给大家,希望朋友们喜欢,先给个首页看看吧!!! 一.JqueryMobile基本页面结构 <!DO ...

  10. [教程]Oracle 11g Express 安装和使用教程

    使用工具的第一步就是安装工具,配置环境!下面就Oracle 11g Express的安装和简单实用做一简介. 一.下载安装过程 去oracle的官网下载Oracle 11g express,大概300 ...