在注意到由于字符串值错误,应用程序倾向于丢弃随机电子邮件之后,我切换了许多文本列以使用
utf8
列字符集和默认列排序(
utf8_general_ci
)所以它会接受他们。这修复了大多数错误,并使应用程序在遇到非拉丁语电子邮件时停止接收sql错误。
尽管如此,一些电子邮件仍会导致程序遇到错误的字符串值错误:
(Incorrect string value: '\xE4\xC5\xCC\xC9\xD3\xD8...' for column 'contents' at row 1)
目录列是
MEDIUMTEXT
使用
UTF8
列字符集和
通用型
列整理。此列中没有可切换的标志。
请记住,除非绝对必要,否则我不想接触或查看应用程序源代码:
-
是什么导致了这个错误?(是的,我知道电子邮件中充满了随机垃圾,但我认为utf8是相当允许的)
-
我怎样才能修好它?
-
这样的修正可能产生什么影响?
我考虑过的一件事是在打开二进制标志的情况下切换到utf8 varchar([一些大的数字]),但是我对mysql相当陌生,不知道这样的修复是否有意义。