最佳答案
在注意到一个应用程序由于不正确的字符串值错误而倾向于丢弃随机的电子邮件之后,我尝试切换了许多文本列,使用 utf8列字符集和默认列排序(utf8_general_ci) ,这样它就会接受它们。这修复了大多数错误,并使应用程序在遇到非拉丁语的电子邮件时也不再出现 sql 错误。
尽管如此,一些电子邮件仍然导致程序命中不正确的字符串值错误: (Incorrect string value: '\xE4\xC5\xCC\xC9\xD3\xD8...' for column 'contents' at row 1)
内容列是一个 MEDIUMTEXT数据类型,它使用 utf8列字符集和 utf8_general_ci列整理。在本专栏中没有我可以切换的标志。
请记住,除非绝对必要,否则我不想触摸甚至不想看应用程序源代码:
我考虑的一件事情是切换到一个打开了二进制标志的 utf8 varchar ([一些大数字]) ,但是我对 MySQL 相当不熟悉,并且不知道这样的修复是否有意义。