日期:2014-05-16  浏览次数:20882 次

mysql 插入数据编码问题
表结构:
CREATE   TABLE   `test`   (
    `str`   varchar(320)   default   NULL
)   ENGINE=InnoDB   DEFAULT   CHARSET=utf8;

问:
insert   into   test   (str)   values( "尐° ");

我在mysql中直接执行可以插入

但是我用c   调用mysql_real_query   却插入失败
我怀疑是编码问题
可是找了半天也没有解决

------解决方案--------------------
连接数据库后先执行一条SET NAMES 'utf8 '试试。
------解决方案--------------------
show variables like 'character% ',察看所有编码,修改
------解决方案--------------------
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扩展的源代码。