我有下面的两个文件:
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
请教高手!
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
请教高手!
out.println(counter.getToday());
<%@ page contentType="text/html;charset=gb2312"%>
然后直接打印
一般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"));
<%@ page contentType="text/html;charset=gbk"%>
后来我又把这些语句都注释了,它也能正常输出中文了!
The current date is ${counter.today} <p>
<% //byte[] b=counter.getToday().getBytes("GB2312");
//out.println(new String(b,"ISO-8859-1"));
%>