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扩展的源代码。