表结构:
CREATE TABLE `test` (
  `str` varchar(320) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;问:
insert into test (str) values("尐°");我在mysql中直接执行可以插入但是我用c 调用mysql_real_query 却插入失败
我怀疑是编码问题
可是找了半天也没有解决

解决方案 »

  1.   

    连接数据库后先执行一条SET NAMES 'utf8'试试。
      

  2.   

    insert into test(str) values('测试');
    mysql_real_connect failed: Incorrect string value: '\xB2\xE2\xCA\xD4' for column
     'str' at row 1Press any key to continue
      

  3.   

    show variables like 'character%',察看所有编码,修改
      

  4.   

    mysql在编码上确实比较麻烦。C调用我不知道。
    我在php中用utf8的时候,在存储过程中不能用set names utf8,否则乱码。
    如楼上所说,show variables like 'character%',把环境变量都设为utf8试一试。
    另外我怀疑是接口问题,我在mysql.exe中用utf8的时候,中文从未显示正常过,即使是
    set names utf8; 
    set chatacter set utf8;
    之后仍然乱码,这说明mysql.exe这个程序对utf8的处理能力也有限,由此可以怀疑其api,如果有时间可以考虑看一下php中mysql扩展的源代码。