mysql存储过程碰到中文乱码问题

mysql> call gen_cus;

ERROR 1366 (HY000): Incorrect string value: '\xD7\xE3\xC9\xD0\xC5\xAE...' for co

lumn 'l_shop_nick' at row 1

原因是因为命令行的客户端编码默认是latin1

mysql的版本是5.5

使用 service.msc 找到mysql的服务 C:\ProgramData\MySQL\MySQL Server 5.5\my.ini

修改这个文件

[client]

no-beep

default-character-set=utf8

[mysql]

default-character-set=utf8

client 增加编码配置就行了

然后将存储过程重新删除

drop procedure gen_cus;

DELIMITER //

CREATE PROCEDURE gen_cus()

BEGIN

DECLARE l_uid varchar(32); 

DECLARE l_total int unsigned default 0;

DECLARE l_shop_nick VARCHAR(32) ;

set l_shop_nick='测试店铺';

set l_uid = replace(uuid(),'-','');

while l_total<=10 do

 set l_uid = replace(uuid(),'-','');

 select l_total;

 set l_total  = l_total +1;

 insert into custom_info(cus_uid,shop_nick,nick,name,com_uid,sid,create_time) values(l_uid,l_shop_nick,concat('shop',l_uid),concat('name',l_uid),'783E0081AA473A5B8143F1676833E84B','783E0081AA473A5B8143F1676833E84B',now());

end while;

END;

//  

DELIMITER ;

后来还是有乱码.

然后在DbVisualizer 中查看存储过程发现 是乱码.

然后在DvVisual中修改成正确的中文后 才ok.

诶.....

说明

相关资料:http://www.cnblogs.com/ndxsdhy/archive/2011/11/19/2255111.html

mysql存储过程相关知识:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html

相关推荐