我有一个带有“şalom”的SQL操作,其中包含一个非ASCII字符。 声明(我在下面发布)运行完全正常:
UPDATE `myTable1` SET `description`='The topic for this learning plan starts with the \"ÅŸ\" ( sh ) letter which is a non-ASCII char. ', `topic`='ÅŸalom'' WHERE `RecID` = '1308'"
然而,在这个陈述之后,我必须再运行一个将“şalom”这个词放在另一个表中但是那个FAILS。报告的错误如下:
INSERT INTO `myTable2` (`TOPIC_Name`, `TOPIC_AddedOn`) VALUES ('[Åÿalom]', '2018-04-12').
最后一个SQL错误:
HY000, 1366, Incorrect string value: '\xC5\xFFalom...' for column 'Topic_Name' at row 1
我们检查了表结构和字段结构,发现它们是相同的,并且设计为接受utf-8。
我们无法弄清楚为什么一个陈述通过而另一个陈述扼杀。有任何想法吗?
答案 0 :(得分:0)
ÅŸ
是ş
的Mojibake。当被视为latin1时,ÅŸ
是十六进制C5FF。有关“最佳实践”和“Mojibake”的讨论,请参阅Trouble with UTF-8 characters; what I see is not what I stored。