【问题标题】:mysql stored function return value charsetmysql存储函数返回值字符集
【发布时间】:2015-01-13 14:40:04
【问题描述】:

我有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'); 我明白了 sdfsfsdf 结果

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

【问题讨论】:

    标签: mysql character-encoding user-defined-functions


    【解决方案1】:

    尝试在定义结果时使用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 将传入参数转换为默认字符集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-28
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多