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

上传人:11****ws 文档编号:3180599 上传时间:2019-05-24 格式:DOC 页数:7 大小:159.63KB
下载 相关 举报
servlet中文乱码原因及解决方案.doc_第1页
第1页 / 共7页
servlet中文乱码原因及解决方案.doc_第2页
第2页 / 共7页
servlet中文乱码原因及解决方案.doc_第3页
第3页 / 共7页
servlet中文乱码原因及解决方案.doc_第4页
第4页 / 共7页
servlet中文乱码原因及解决方案.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、Servlet 中文乱码问题及解决方案剖析 分类: 【Java Web】2012-01-28 23:26654 人阅读评论(0)收藏举报一、常识了解1.GBK 包含 GB2312,即如果通过 GB2312 编码后可以通过 GBK 解码,反之可能不成立;2.java.nio.charset.Charset.defaultCharset() 获得平台默认字符编码;3.getBytes() 是通过平台默认字符集进行编码;二、中文乱码出现在学习任何一门技术时,经常会有初学者遇到中文乱码问题,比如 MySQL,是因为在安装时没有设置;而在 Servlet 中,也会遇到中文乱码问题;比如:OutputSt

2、ream out = response.getOutputStream();out.write(String ); 输出中文时可能会出现乱码;比如:java view plaincopyprint?1. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 2.3. OutputStream out = response.getOutputStream(); 4. String data = “博客“; 5. out.

3、write(data.getBytes(“UTF-8“); 6. 输出乱码的问题是程序用 UTF-8 编码,而浏览器用 GB2312 解码,因此会出现乱码;Servlet 乱码分为 request 乱码和 response 乱码;三、response 中文乱码在网上很有效的解决方法是添加:response.setCharacterEncoding(“UTF-8“);解决不了,后来又搜到一条解决方法是:respnse.setHeader(“content-type“,“text/html;charset=UTF-8“);两句都填上,后来终于解决了这个问题;其实我们应该思考一下本质;问题 1:我们

4、这里先来说明一下错误的原因,下图是显示乱码的流程图:response.setContentType(“text/html;charset=UTF-8“); 目的是为了控制浏览器的行为,即控制浏览器用 UTF-8 进行解码;response.setCharacterEncoding(“UTF-8“); 的目的是用于 response.getWriter()输出的字符流的乱码问题,如果是 response.getOutputStream()是不需要此种解决方案的;因为这句话的意思是为了将 response 对象中的数据以 UTF-8 解码后发向浏览器;解决方案流程图:问题 2问题代码如下:java

5、 view plaincopyprint?1. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 2. PrintWriter out = response.getWriter(); 3. String data = “博客“; 4. out.println(data); 5. 浏览器输出: ?原因:“博客“ 首先被封装在 response 对象中,因为 IE 和 WEB 服务器之间不能传输文本,然后就通过 ISO-8859-1 进行编码,但是 ISO-8859-1 中没有 “博客”的编码,因此输出“?”表示没有编码;错误代码流程图:而解决方案是:response.setCharacterEncoding(“GB2312“); 设置 response 使用的码表解决方案流程图:补充:通过 标签模拟 response 头;等价于 response.setContentType(“text/html“);四、request 乱码问题request 请求分为 post 和 get,对于不同的请求方式有不同的解决乱码的方案;1.post 请求乱码错误原因:解决方案:2.get 请求乱码

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。