mysql insert 生僻字,程序不返回不报错,怎么回事呢?

繁华都市的夜晚 2013-05-13 05:48:33
用的是odbc连接,DRIVER={MySQL ODBC 5.2w Driver};charset=utf8mb4;SERVER=%s;PORT=%d;DATABASE=%s;UID=%s;PASSWORD=%s;OPTION=3;
insert语句:
szSQL.Format(_T("INSERT INTO test")
_T("(ID, Name)")
_T("VALUES(%d, '%s')"), iBackHistoryID, szTargetBegin);
m_Conn.pConn->Execute((_bstr_t)szSQL, &RecordsAffected, adCmdText);
...全文
217 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
sql在mysql客户端执行是可以的,我的mysql 用的是utf8mb4 vc程序用的是unicode编码
wwwwb 2013-05-14
  • 打赏
  • 举报
回复
在MYSQL命令行下插入,看看提示什么 show variables like 'char%';
rucypli 2013-05-13
  • 打赏
  • 举报
回复
你拿sql在mysql客户端执行下试试
rucypli 2013-05-13
  • 打赏
  • 举报
回复
你拿sql再程序段执行下试试
Mymakekuhu 2013-05-13
  • 打赏
  • 举报
回复
第一次采用MySQL作为业务应用的数据库,由于经验不够丰富,在安装数据库的时候选择了GB2312编码。 起先用的也算得心应手,然而后续发现了生僻字不能显示的情况,把我搞得焦头烂额。经过好几天的摸索、 学习,终于把问题解决了。记下解决步骤,与跟我一样的新手分享。 步骤一: 分析出现乱码的原因 由于GB2312字符集只收录了6763个汉字,导致一些生僻字无法正常显示。 步骤二:确定解决方法 把字符集由GB2312改成GBK。但是由于不能丢弃之前的数据,如何修改MySQL的字符集成了关键。 步骤三:字符集的修改 a. 先导出表结构 mysqldump -u root -p --default-character-set=gbk -d 数据库名 > createdb.sql 其中参数-d表示只导出表结构,不导出数据。 b. 打开createdb.sql,手工把gb2312替换成gbk。 c. 导出所有记录 mysqldump -u root -p --quick --no-create-info --extended-insert --default-character-set=gb2312 数据库名 > data.sql 其中参数--no-create-info表示不生成建表语句;--default-character-set=gb2312表示按照原来字符集导出所有数据。 d. 打开data.sql,手工把SET NAME gb2312改成SET NAME gbk。 注意:如果data.sql很大,可能需要找一些替换工具来完成替换操作,否则可以直接用UltraEdit之类的编辑工具打开修改。 e. 在新的服务器上创建表,执行createdb.sql。 mysql -u root -p 数据库名 < createdb.sql f. 导入数据,执行data.sql mysql -u root -p 数据库名 < data.sql g. 创建数据库用户。 到这儿已经完成了数据库字符集从gb2312到gbk的修改,接下去可以登录数据库,手工把显示为"?"的乱码字重新更新一下。
ACMAIN_CHM 2013-05-13
  • 打赏
  • 举报
回复
字符集的原因。按下贴中方法检查一下字符集设置。 http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx MySQL 中文显示乱码
  • 打赏
  • 举报
回复
szSQL.Format(_T("INSERT INTO test(ID, Name)") _T("VALUES(%d, '

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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