Cle*_*nte 1 mysql stored-procedures utf-8
我有一个包含一些 Cyrillic 字符串的存储过程。如果列包含一些特定的字符串,其中一些是西里尔文,我想检查一个带有 char 列的表。问题似乎是我无法使用这些字符串创建程序。
SET NAMES utf8;
delimiter //
drop procedure if exists testutf8
//
create procedure testutf8()
begin
select '?????????';
end
//
delimiter ;
call testutf8();
Run Code Online (Sandbox Code Playgroud)
退货??????
show create procedure testutf8;
Run Code Online (Sandbox Code Playgroud)
返回
程序 testutf8
sql_mode STRICT_TRANS_TABLES
创建程序“CREATE DEFINER= xxx@ %PROCEDURE testutf8() begin select '?????????'; end”
character_set_client utf8
collation_connection utf8_general_ci
数据库整理 latin1_swedish_ci
所以尽管我使用 SET NAMES UTF8; 服务器似乎将我的代码转换为 latin1。我怎样才能解决这个问题?
小智 7
在存储过程中添加了输入变量
CHARSET utf8
Run Code Online (Sandbox Code Playgroud)
所以它看起来像这样:
CREATE DEFINER=`root`@`%` PROCEDURE `post_content`(IN postName varchar(255), IN contentEn longtext, IN contentAR longtext CHARSET utf8, IN contentKU longtext CHARSET utf8)
Run Code Online (Sandbox Code Playgroud)
...
| 归档时间: |
|
| 查看次数: |
13001 次 |
| 最近记录: |