gpt4 book ai didi

mysql存储函数返回值charset

转载 作者:太空宇宙 更新时间:2023-11-03 12:03:14 27 4
gpt4 key购买 nike

我有mysql用户定义函数

DELIMITER $$ 
CREATE FUNCTION `myfunc`(`str` TEXT) RETURNS TEXT CHARSET utf8
NO SQL
DETERMINISTIC
SQL SECURITY INVOKER
BEGIN

RETURN str;
END$$

DELIMITER ;

它只是返回传递的参数而不做任何改变

我的问题是,如果我传递一些俄语或希腊语字母,那么我只会返回 ??????作为回应

SELECT myfunc('ывфафывавы');

会回来的 ??????????

如果我打电话 选择 myfunc('sdfasfsdf');我得到 sdfasfsdf结果

找不到问题所在,有什么想法吗?

最佳答案

尝试使用 CHARSET utf8 声明您的参数,就像您定义结果一样。

DELIMITER $$ 
CREATE FUNCTION `myfunc`(`str` TEXT CHARSET utf8)
RETURNS TEXT CHARSET utf8
NO SQL
DETERMINISTIC
SQL SECURITY INVOKER
BEGIN

RETURN str;
END$$

DELIMITER ;

否则 MySQL 会将您的传入参数强制转换为您的默认字符集。

关于mysql存储函数返回值charset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27924658/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com