mysql 修改存储过程执行字符集_MYSQL存储过程字符集 一个非常纠结的有关问题

mysql存储过程字符集 一个非常纠结的问题

create testtableA(

zhongwen text(256),

)DEFAULT CHARSET=utf8;

create testtableB(

writezhongwen text(256),

in text(256),

)DEFAULT CHARSET=utf8;

DELIMITER //

CREATE PROCEDURE test(IN inzhongwentext(512) CHARSET 'utf8')

BEGIN

declare temvalue text;

select zhongwen into temvalue from testtableA;

insert into testtableB(writezhongwen,in) value (temvalue,inzhongwen);

END//

DELIMITER ;

如果在创建存储过程的时候不将inzhongwen设置成utf8

那么testtableB的in字段和writezhongwen将会是乱码……

将它设置成utf8后,in字段恢复正常,而writezhongwen字段仍然是乱码

我连接数据库都会经过这个步骤

mysql_query('set names utf8')

我不希望必须要修改mysql的配置文件来来改变数据库的字符集,如果换一台机器,换另一个不懂电脑的人,他就没法弄了~

所有我想请教一下如何可以将

select 出来的字符改成utf8格式呢

MYSQL创建存储过程的时候能像创建表的时候一样指定字符集吗?

或者如何定义变量的时候设置它的默认字符集呢?

declare temvalue text;

------解决方案--------------------

将text类型换成varchar试试

e7ce419cf2d6ad34d01da2ceb8829eed.png

微信 赏一包辣条吧~

023a57327877fb4402bcc76911ec18ea.png

支付宝 赏一听可乐吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值