用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()