Ubuntu 12.04,mysql Ver 14.14 Distrib 5.6.22
如果我通过命令行插入,一切正常:
insert into LocationState (Value, LocationCountryId) VALUES ('Благоевград / Blagoevgrad', 1);
查询正常,1行受影响(0.05秒)
如果我从同一个shell调用存储过程,我会收到错误:
call addState('Благоевград / Blagoevgrad', 'BG');
ERROR 1366(HY000):字符串值不正确:' \ xD0 \ x91 \ xD0 \ xBB \ xD0 \ xB0 ......'对于列'州'在第31行
全部设置为utf8,这是sp:
CREATE DEFINER=`root`@`localhost` PROCEDURE `addState`(
IN state VARCHAR(128),
IN country VARCHAR(2)
)
MODIFIES SQL DATA
BEGIN
INSERT INTO `LocationState` (`Value`, `LocationCountryId`) VALUES
(
state,
(SELECT `Id` FROM `LocationCountry` WHERE `ShortValue` = country)
);
END
我还尝试了一个SET NAMES' utf8'在sp但没有运气。
我还能做什么?
顺便说一句:保加利亚语以及俄语等等