Mysql Blob类型 转换为java String 时产生乱码的解决办法

我的mysql字符编码都是utf-8,如下图,可用命令查看mysql的编码类型:

Mysql Blob类型 转换为java String 时产生乱码的解决办法 - hzh -   The Legend of 1900


mysql客户端查询结果时,中文能正常显示,如下图:
Mysql Blob类型 转换为java String 时产生乱码的解决办法 - hzh -   The Legend of 1900
 
但是当在java程序中读取数据的时候,note字段读出来是乱码,(note字段是Blob类型的),上网查看了许多方法,下面这种方式能正确转换为java中的String类型:

while (rs.next()) {
int id = rs.getInt(1);
String name = rs.getString(2);
int age = rs.getInt(3);
Date birthday = rs.getDate(4);
Blob noteBlob = rs.getBlob(5);
String note = null;
if(noteBlob != null){
InputStream is = noteBlob.getBinaryStream();
ByteArrayInputStream bais = (ByteArrayInputStream)is;
byte[] byte_data = new byte[bais.available()]; //bais.available()返回此输入流的字节数

bais.read(byte_data, 0,byte_data.length);//将输入流中的内容读到指定的数组
note = new String(byte_data,"utf-8"); //再转为String,并使用指定的编码方式
is.close();
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值