从oracle11g中读取blob类型的字段值,

用java怎么把blob转成String,blob读取出来是乱码,编码格式utf-8、gbk、等等都试了也是乱码
怎么解决

直接从数据库里面拿(如果有hibernate支持)那就domain.getBlob()。然后用流去将blob转换成string 具体怎么做 百度。
存值的时候是将表单的string转换成blob再塞进数据库。newSerialBlob(String对象的.getBytes())

show variables like 'character_set_client';//查看数据库编码
set names 'utf8'//注意在 数据库中是utf8 不是utf-8
然后 看你的java中的编码是否是utf-8 要都一致才能不乱码

show variables like 'character_set_client';//查看数据库编码
set names 'utf8'//注意在 数据库中是utf8 不是utf-8
然后 看你的java中的编码是否是utf-8 要都一致才能不乱码 一楼正解!

if (str == null || "".equals(str)) {
return null;
}
return Hibernate.createClob(str);

//用这个试一下 clob.getSubString()

if (clob == null) {
return null;
}

    try {
        return clob.getSubString(1, (int) clob.length());
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        throw new AppException(e);
    }

用异常处理try{} catch()