我是JDK1.4 TOMCAT 5.5
用JSP输出EXCEL文件,中文总是乱码
用response.setContentType("charSet=gb2312")也没有用,应该怎么弄??

解决方案 »

  1.   

    <%@ .................. charset=gb2312%>
      

  2.   

    假设你的中文字符串为:str
    则输出时进行如下字符转化即可避免乱码:
    new String(str.getBytes("ISO8859_1"),"GBK");
      

  3.   

    depname = new String(rs2.getString("DEPNAME").getBytes(), "8859_1");
    这样子的就OK了!
      

  4.   

    抱歉,没看仔细,如果是EXCEL输出的话:
    1、直接打开EXCEL文件并显示,在JSP页面的中加上<%@ page contentType="application/vnd.ms-excel;charset=GB2312"%>
    2、如果是取文件流输出,则在输出前加如下语句:
    response.setContentType("application/vnd.ms-excel");
      

  5.   

    看看这里:
    http://www.blogjava.net/rickhunter/articles/33571.html
      

  6.   

    你的整个页面的编码还是得用GB2312的
    也就是说在你的页面的最上端还是要加上:
    <%@ page 
    contentType="text/html;charset=GB2312"
    pageEncoding="GB2312"
    %>
      

  7.   

    不要用GB2312,这个编码的字符集太小,很多生僻字,繁体字显示不了,用gbk或者utf-8
      

  8.   

    在JSP页面的中加上<%@ page contentType="application/vnd.ms-excel;charset=GB2312"%>
    这个是必不可少的!如果你的数据是从数据库里面读出来的,那么你就要注意你的数据库编码格式与你的前端显示编码格式是否一致,不一致需要进行转换!
    如果你的数据库只是在前台流转,但是包含了中文字符,那么你也需要在显示之前进行转换!