我有一个存储过程,里面有一些西里尔字符串。如果该列包含一些特定的字符串,我想检查一个带有 char 列的表,其中一些是西里尔文。问题似乎是我无法使用这些字符串创建过程。
SET NAMES utf8;
delimiter //
drop procedure if exists testutf8
//
create procedure testutf8()
begin
select 'ξενοδοχια';
end
//
delimiter ;
call testutf8();
退货??????
show create procedure testutf8;
返回
程序 testutf8
sql_mode STRICT_TRANS_TABLES
创建过程“CREATE DEFINER= xxx
@ %
PROCEDURE testutf8
()开始选择'?????????';结束”
character_set_client utf8
collation_connection utf8_general_ci
数据库整理 latin1_swedish_ci
所以尽管我使用 SET NAMES UTF8; 服务器似乎将我的代码变成了 latin1。我怎样才能解决这个问题?