大家好:我的本地系统是WindowXP,服务器是Tomcate6,
        服务器系统Aix5.3
  系统在本地机器,读取Oracle10G数据库中Blog字段时候,在JSP页面显示正常,将其发布到服务器上时,页面中Blob字段显示出现中文乱码问题,页面设置编码为UTF-8,且Blob字段在显示前,后台已经转化成String类型字符串,请问这算怎么回事?

解决方案 »

  1.   

    问题出在这里:
    public String getBlobValue(Blob blob) {
    StringBuilder sb = new StringBuilder();
    InputStream is = null;
    try {
    if (blob != null) {
    is = blob.getBinaryStream();
    byte[] buffer = new byte[1024];
    int len = 0;
    while ((len = is.read(buffer)) != -1) {
    sb.append(new String(buffer, 0, len));
    }
    }
    } catch(Exception e) {
    e.printStackTrace();
    } finally {
    try {
    is.close();
    }catch(Exception e) {
    e.printStackTrace();
    }
    }
    return sb.toString();
    }这是我从数据库中取出blob类型数据并转化为字符串,转完之后就是乱码,期待解决的方法!
      

  2.   

    编码全部设置成UTF-8,读取Blob字段的时候如下:try{
    //转换编码后在服务器Aix上无乱码问题,但是在本机有乱码
    setContent(new String(this.getContent().getBytes("iso_8859_1"),"GBK"));
    }catch(Exception ex){
        System.out.print("编码出错!");
    }
    能够保证读取没问题,但是插入这个字段的时候却有问题了,出现乱码,我调试了一下,在插入数据库之前,获取到的就是乱码,但在Windowxp系统中没有任何问题,要说跟操作系统有关,服务器Aix上我也设置了编码为UTF-8,为什么还会有错呢?求教
      

  3.   

    iso_8859_1
     iso-8859-1
      

  4.   

    Lz读取的时候设置下编码或者换中读取流试试,BufferedReader