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
语法来更新的话则不起作用。
版权所属:SO JSON在线解析
原文地址:https://www.sojson.com/blog/42.html
转载时必须以链接形式注明原始出处及本声明。
如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。