我有下面的两个文件:
javabean:Counter.java内部定义方法
public String getToday(){
  SimpleDateFormat dateFormat=new SimpleDateFormat("EEE,dd MMMM yyyy");
  return dateFormat.format(new Date());
}
jsp文件对javabean的使用:
The current date is ${counter.today} <p>
<% byte[] b=counter.getToday().getBytes("ISO-8859-1");
out.println(new String(b,"GB2312"));
%>
不知怎么的这中文不是不能正常显示,即:星期四,04 四月 2006
总是显示:???,04 ?? 2006
请教高手!

解决方案 »

  1.   

    直接打印试试
    out.println(counter.getToday());
      

  2.   

    jsp页面开头加
    <%@ page contentType="text/html;charset=gb2312"%>
    然后直接打印
      

  3.   

    byte[] b=counter.getToday().getBytes("ISO-8859-1");取的是服务器系统编码,
    一般windows中是GBK或GB2312,可以通过
    Properties pps=System.getProperties();
    System.out.println(pps.get("file.encoding"));查看.
    所以应该写成byte[] b=counter.getToday().getBytes("GB2312");
    out.println(new String(b,"GB2312"));是把字符串按照http协议输出到浏览器,http协议的传输编码是ISO-8859-1,浏览器会根据ContentType指示的编码显示
    这一句只能写成out.println(new String(b,"ISO-8859-1"));
      

  4.   

    jsp页面开头加
    <%@ page contentType="text/html;charset=gbk"%>
      

  5.   

    都邪乎了,按照tx18的建议一改就成功了,但是有一点不太明白!
    后来我又把这些语句都注释了,它也能正常输出中文了!
    The current date is ${counter.today} <p>
    <% //byte[] b=counter.getToday().getBytes("GB2312");
    //out.println(new String(b,"ISO-8859-1"));
    %>