情况如下:
有两台机,一台是本机,开发用的(window),一台是服务器(linux),分别安装java环境,各自跑tomcat,只是数据库是用服务器上的那个oracle,现在开发的那台机里访问一个页面,如:http://192.168.2.100/news/index.jsp,页面一切正常,没有出现乱码。但如果是将URL地址改为服务器上的,如:http://192.168.2.110/news/index.jsp就会出现乱码了。只是bolb字段的数据是这样,其它的正常。
竟然只是bolb字段出现乱码就好办了,想了一想,应该是在pojo里,取bolb字段时没有设定字符集的原因,将pojo里的bolb字段的get方法增加一个如:
public String getContextString(){
if(this.context!=null){
return new String(context,"GBK")
}else{ return ""; }
}
更新到服务器上,页面一切正常了。由于原来的没有指定字符集的编码,所以导致出现了乱码。但 现问题是,数据都是用服务库上的那个oracle,如果是乱码的话,那无论是本机的还是服务器上的页面,打开时都应该是乱码才对的。但为什么就是本机上的没有出现乱码,而服务器上的就会出现呢?莫非是与在没有指定字符集时就会默认采用操作系统默认的那个字符集的原因?如果真的是如此,那应该对bolb字段在pojo里都增加两个方法,一个是上面的那个get,还应该增加一个set的方法如:
public void setContextString(String context){
this.context = context.getBytes("GBK");
}
指定保存了在数据库里的采用的字符集编码!不过到底是不是这个原因就不肯定了。呵呵....