在注意到应用程序由于不正确的字符串值错误而倾向于丢弃随机电子邮件后,我尝试并切换了许多文本列,以使用utf8
列字符集和默认列排序(utf8_general_ci
),以便它可以接受它们。这修复了大多数错误,并使应用程序在遇到非拉丁语电子邮件时停止获取sql错误。
尽管如此,一些电子邮件仍然导致程序命中不正确的字符串值错误:(Incorrect string value: '\xE4\xC5\xCC\xC9\xD3\xD8...' for column 'contents' at row 1)
contents列是使用utf8
列字符集和utf8_general_ci
列collate的MEDIUMTEXT
数据类型。在此列中没有我可以切换的标志。
请记住,除非绝对必要,否则我不想接触甚至查看应用程序源代码:
我考虑的一件事是切换到启用了二进制标志的utf8 varchar(一些大数字),但我对MySQL相当不熟悉,也不知道这样的修复是否有意义。
https://stackoverflow.com/questions/1168036
复制相似问题