SQL не работает с не-ascii символом
У меня есть операция SQL со словом "şalom", которая содержит не-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" в другую таблицу, но этот "НЕИСПРАВНОСТЬ". Сообщенная ошибка следующая:
INSERT INTO `myTable2` (`TOPIC_Name`, `TOPIC_AddedOn`) VALUES ('[Åÿalom]', '2018-04-12').
LAST SQL ERROR:
HY000, 1366, Incorrect string value: '\xC5\xFFalom...' for column 'Topic_Name' at row 1
Мы проверили структуры таблиц и структуры полей и увидели, что они идентичны и предназначены для принятия utf-8.
Мы не можем понять, почему одно утверждение проходит, а другое задыхается. Есть идеи?
1 ответ
ÅŸ
это моджибаке для ş
, Когда рассматривается как latin1, ÅŸ
шестнадцатеричный C5FF. См. Проблема с символами UTF-8; то, что я вижу, не то, что я хранил для обсуждения "Лучшей практики" и "Маджибаке".