我的情况是:在批量插入的时候报错.我在list元素第一个对象处插入"set names utf-8;"但不起作用. java.sql.BatchUpdateException: Incorrect string value: '\xF0\xA1\xA4\xA1\xEF\xBF...' for column 'EDITOR_DESC' at row 1 at com.mysql.jdbc.StatementImpl.executeBatch(StatementImpl.java:1007) at com.haoei.lucene.dao.BaseDao.executeBatch(BaseDao.java:121)如果单独在可视化工具下是可以通过的.这个问题怎么解决啊.?谢谢.QQ 359002222
要将数据库中涉及中文表的列编码格式改为gbk:alter table comment modify comment text character set gbk;(修改表comment中的列comment编码为gbk)我的可以了数据库中文为乱码但 Java提取中文正常(我还修改过url,my.ini编码格式)试出来的.
strTemp.Format("INSERT INTO info(xmrc, `name`, phone, mail) VALUES('%s', '%s', '%s', '%s')", sData.c_str(), sName.c_str(), sPho.c_str(),sEmail.c_str());
if( mysql_real_query(&m_MySql, strTemp, strTemp.GetLength())!=0 )
{
AfxMessageBox(mysql_error(&m_MySql));
return;
}
strTemp.Format("INSERT INTO info(xmrc, `name`, phone, mail) VALUES('%s', '%s', '%s', '%s')", sData.c_str(), sName.c_str(), sPho.c_str(),sEmail.c_str());
if( mysql_real_query(&m_MySql, strTemp, strTemp.GetLength())!=0 )
{
AfxMessageBox(mysql_error(&m_MySql));
return;
}
为何加上单引号??
我怕他是mysql的关键子
去掉了错误也一样
选utf8没错误 但用MySql-front看 插的数据是"??????????????"
strtemp正常 我trace显示的是正常的.
`id` int(11) NOT NULL auto_increment,
`xmrc` char(10) NOT NULL,
`name` varchar(50) character set gbk default NULL,
`phone` char(30) default NULL,
`mail` char(20) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 ROW_FORMAT=COMPRESSED |
mail就是英文的
没错误
-_-b .. 内存泄漏
等 级:
发表于:2008-01-23 16:20:4013楼 得分:0
奇怪了..执行插入语句前,先执行set names gbk;试试..
---------------------------------------------------
ok了
谢谢各位的帮助
java.sql.BatchUpdateException: Incorrect string value: '\xF0\xA1\xA4\xA1\xEF\xBF...' for column 'EDITOR_DESC' at row 1
at com.mysql.jdbc.StatementImpl.executeBatch(StatementImpl.java:1007)
at com.haoei.lucene.dao.BaseDao.executeBatch(BaseDao.java:121)如果单独在可视化工具下是可以通过的.这个问题怎么解决啊.?谢谢.QQ 359002222
Java提取中文正常(我还修改过url,my.ini编码格式)试出来的.
解决方法:#16楼"奇怪了..执行插入语句前,先执行set names gbk;试试.. "
mysql语句:'set names gbk;insert new_table values(456,"火星");'
如 set names utf-8;
inser into users values(1,'小张');