char *tep = "insert  into admingroup(`id`,`name`,`pgrpid`,`Description`) values('1','空间额','0','乌尔而')";
int r = mysql_query(hnd,"set   names   'gb2312'"); 
r = mysql_query(hnd,tep);
const char * p = mysql_error(hnd);error = Incorrect string value: '\xE6\xB8\xA9\xE6\x98\x82...' for column 'name' at row 1另外;我将tep转换成utf8 数据库设置为mysql_query(hnd,"set   names   'utf8'");插入还是会有问题 error同上面一样
请问这个问题改如何解决 

解决方案 »

  1.   

    我查了一下 空间额的utf8在字符串的中间会出现/0的值,是不是这原因,致使mysql_query()执行不成功
      

  2.   

    应该是表中这个字段字符集设置不匹配的原因。
     show create table admingroup;看一下字段'name'的字符集。
    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
     MySQL 中文显示乱码
      

  3.   


    数据库是 utf-8,然后  页面 里的 编码也要保持为 utf-8, 这个 程序 不知道 是不是也像 Php 可以在里面 header 一下,程序编码为 utf-8 
      

  4.   

    看插入的内容好像是因为插入前的编码被转换成32位的utf unicode编码所致
    PHP和Mysql的编码问题是比较容易出现的,但注意的话,应该是比较容易避免的
    就是要注意
    1。页面编码
    2。显示编码
    3。数据库编码
    一致就行了
      

  5.   

    另外;我将tep转换成utf8 数据库设置为mysql_query(hnd,"set  names  'utf8'");插入还是会有问题 error同上面一样 
    请问这个问题改如何解决在新的字符集下重新插入记录,再执行SQL语句试试