1 / 7
文档名称:

servlet中文乱码原因及解决方案.doc

格式:doc   页数:7
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

servlet中文乱码原因及解决方案.doc

上传人:zbfc1172 2013/1/4 文件大小:0 KB

下载得到文件列表

servlet中文乱码原因及解决方案.doc

文档介绍

文档介绍:Servlet 中文乱码问题及解决方案剖析
分类: 【Java Web】2012-01-28 23:26654人阅读评论(0)收藏举报
一、常识了解
,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立;
() 获得平台默认字符编码;
() 是通过平台默认字符集进行编码;
二、中文乱码出现
在学习任何一门技术时,经常会有初学者遇到中文乱码问题,比如MySQL,是因为在安装时没有设置;而在Servlet中,也会遇到中文乱码问题;
比如:
OutputStream out = ();
(String );
输出中文时可能会出现乱码;
比如:
[java] view plaincopyprint?
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
OutputStream out = ();
String data = "博客";
(("UTF-8"));
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

OutputStream out = ();
String data = "博客";
(("UTF-8"));
}
输出乱码的问题是程序用UTF-8编码,而浏览器用GB2312解码,因此会出现乱码;
Servlet乱码分为request乱码和response乱码;
三、response中文乱码
在网上很有效的解决方法是添加:
("UTF-8");
解决不了,后来又搜到一条解决方法是:
("content-type","text/html;charset=UTF-8");
两句都填上,后来终于解决了这个问题;
其实我们应该思考一下本质;
问题1:
我们这里先来说明一下错误的原因,下图是显示乱码的流程图:
("text/html;charset=UTF-8"); 目的是为了控制浏览器的行为,即控制浏览器用UTF-8进行解码;
("UTF-8"); ()输出的字符流的乱码问题,()是不需要此种解决方案的;因为这句话的意思