龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > MySQL 技术 >

MySQL存储过程的字符集问题

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
MySQL存储 是MySQL数据库操作中非常重要的一个工作,也是大家平时工作中都要应用到的。由于存储过程中定义参数时,无法定义其 字符集 ,因此调用存储过程的时候,会默认读取全局变

MySQL存储是MySQL数据库操作中非常重要的一个工作,也是大家平时工作中都要应用到的。由于存储过程中定义参数时,无法定义其字符集,因此调用存储过程的时候,会默认读取全局变量character_set_server,而且还是只读取mysqld启动时该全局变量的值作为存储过程中默认的传输字符集。因此,如果数据表/字段使用系统默认的字符集(比如latin1)的话,调用存储过程更新一些非英文的字符串字段时,就不会发生问题;但是,如果数据表/字段的字符集不是系统默认的字符集(比如默认是latin1,数据表使用的是utf8),就会出现问题了。

解决办法:

在my.cnf(windows下是my.ini),增加一行:

default-character-set=utf8

或者

character-set-server=utf8

也可以。如果只是在mysqld启动之后,在 mysql 命令行中用 SET 语法来更新的话则不起作用。


精彩图集

赞助商链接