dav*_*1ua 1 mysql character-encoding user-defined-functions
我有mysql用户定义的函数
DELIMITER $$
CREATE FUNCTION `myfunc`(`str` TEXT) RETURNS TEXT CHARSET utf8
NO SQL
DETERMINISTIC
SQL SECURITY INVOKER
BEGIN
RETURN str;
END$$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
它只是返回传递的参数而不进行任何更改
我的问题是,如果我通过一些俄语或希腊字母,那么我只会返回?????? 作为回应
SELECT myfunc('??????????');
Run Code Online (Sandbox Code Playgroud)
将返回 ??????????
如果我调用 SELECT 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 ;
Run Code Online (Sandbox Code Playgroud)
没有那个 MySQL 将您的传入参数转换为您的默认字符集。