b***i 发帖数: 3043 | 1 具体问题,我只能逐渐写,因为mitbbs居然
数据库一列是blob,用下面的语句生成table,但是这个blob不是utf8。
String create ="CREATE TABLE File (
"name varchar(255) character set utf8 not null,
type varchar(64) character set utf8 not null,
data mediumblob,
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
primary key (name)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; | b***i 发帖数: 3043 | 2 Dao里面:
插入 到 表 (name, type, data) 值 (?, ?, ?)
jdbcTemplate.update(
sql,
new Object[] { dFile.getName(), dFile.getType(), blob,},
new int[] {Types.VARCHAR, Types.VARCHAR, Types.BLOB});
【在 b***i 的大作中提到】 : 具体问题,我只能逐渐写,因为mitbbs居然 : 数据库一列是blob,用下面的语句生成table,但是这个blob不是utf8。 : String create ="CREATE TABLE File ( : "name varchar(255) character set utf8 not null, : type varchar(64) character set utf8 not null, : data mediumblob, : ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, : primary key (name) : ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
| b***i 发帖数: 3043 | 3 其中blob就是Sql的Blob。结果发现,数据库里面的文件不对,变长了,看起来是被utf
-8给编码了。比如数据开始原来是
ff d8 ff e0-00 10 4a 46,结果变成
ef bf bd ef-bf bd ef bf-bd ef bf bd-00 10 4a 46
我是让数据库把所有通讯都utf-8了,在 spring-servlet.xml里面
jdbc:mysql://10.0.16.16:4066/mysql?useEncoding=true&characterEncoding=
UTF-8"
请问如何才能正确insert?
【在 b***i 的大作中提到】 : Dao里面: : 插入 到 表 (name, type, data) 值 (?, ?, ?) : jdbcTemplate.update( : sql, : new Object[] { dFile.getName(), dFile.getType(), blob,}, : new int[] {Types.VARCHAR, Types.VARCHAR, Types.BLOB});
|
|