MySql的blob和中文编码的冲突问题

_weiKun_ 2008-02-28 10:06:14
挺困惑,我在应用mysql的blob字段存储图片时,由于该表中有存储中文注释的字段需和blob字段在同一表内,现在的问题是在写jdbc连接时,如果应用
String url = "jdbc:mysql://localhost/jspdemo?user=root&password=&useUnicode=true&characterEncoding=gbk";
时blob数据会存储不上,而要使用
String url = "jdbc:mysql://localhost/jspdemo?user=root&password=";
才能把blob图片存储成功,但是这是存储中文字段又会出现乱码问题。
各位好友,有否两全其美的办法解决二者的冲突,谢谢!
完整代码:
Connection con;
try{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url = "jdbc:mysql://localhost/jspdemo?user=root&password=&useUnicode=true&characterEncoding=gbk";
con=DriverManager.getConnection(url);
Statement stmt = con.createStatement();
stmt.close();
PreparedStatement pstmt = null;
String sql = "";
File file = new File("c:\\blog.gif");
FileInputStream photoStream = new FileInputStream(file);
sql = "INSERT INTO blobdemo(id,file) VALUES (?,?)";

pstmt = con.prepareStatement(sql);
pstmt.setString(1, "中文");
pstmt.setBinaryStream(1, photoStream, (int) file.length());
pstmt.executeUpdate();


pstmt.close();

con.close();
} catch (Exception e) {
e.printStackTrace();
throw e;
}
...全文
510 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gene_feng 2012-02-21
  • 打赏
  • 举报
回复
怎么解决的啊,小弟也遇到同样的问题,我是用C++来做的,插入纯数字字符串就是正常的,如果是中文或者英文字母在MYSQL中显示就是0,郁闷中!!!
_weiKun_ 2008-02-28
  • 打赏
  • 举报
回复
自己解决了,感谢wuyu
_weiKun_ 2008-02-28
  • 打赏
  • 举报
回复
经wuyu通知建议,补充以下前提:
web容器:tomcat 6.0
mySQL JDBC驱动:mysql-connector-java-5.1.5-bin
在以上问题出现的乱码并不是读出blob字段出现的乱码,而是应用
"jdbc:mysql://localhost/jspdemo?user=root&password=";
方式存储进去之后,另一个存储中文的字段读出来的值就是乱码。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧