怎么解决Outputstream乱码的问题?

相信很多同学和我一样遇到过在通过服务器响应界面界面浏览器界面出现乱码的问题吧,今天我们就来思考一下如何解决乱码问题!


乱码产生的原因:
1.Servlet程序输出给浏览器的内容,不是任何一种中文字符集编码
2.浏览器浏览网页文档是所有采用的字符集编码与它接收到的中文字符集本身的字符编码不一致。


view plain copy to clipboard print ?
  1. //response对象 因为getbytes对象获取的是gb2312的数据,而浏览器采用的默认编码是gb2312,所以就不会出现乱码 
//response对象 因为getbytes对象获取的是gb2312的数据,而浏览器采用的默认编码是gb2312,所以就不会出现乱码


view plain copy to
clipboard print ?


  1. "code" class="java" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; background-color: rgb(240, 240, 240); ">response.getOutputStream().write("贤贤学java".getBytes());  
response.getOutputStream().write("贤贤学java".getBytes());//如果我们把默认编码设置成为UTF-8,那么我们会发现,浏览器又出现了编码问题,这就是第二种产生原因所导致的,下面有两种方式解决:/*第一种*/response.setHeader("Content-Type", 
  
"text/html;charset=utf-8");
 
  
view plain copy to clipboard print ?
  1.  
view plain copy to clipboard print ?
  1. "code" class="java" style="margin-top: 4px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px; background-color: rgb(240, 240, 240); ">/*第二种*/response.getOutputStream().write("".getBytes());  
/*第二种*/response.getOutputStream().write("".getBytes()); 
    
 
   
view plain copy to clipboard print ?
  1. response.getOutputStream().write("中国".getBytes("UTF-8")); 
  2. /*OutPutStream流在浏览器上输出数字*/ 
  3. response.getOutputStream().write((98+"").getBytes()); 
response.getOutputStream().write("中国".getBytes("UTF-8")); /*OutPutStream流在浏览器上输出数字*/ response.getOutputStream().write((98+"").getBytes());

你可能感兴趣的:(怎么解决Outputstream乱码的问题?)