我试图保存一个字符串包含html的电子邮件在文本类型列。但我得到这个错误。我找不到哪里是不兼容的字符。有任何清理方法,我可以用来转换所有utf8_unicode_ci到utf8mb4_0900_ai_ci?
utf8_unicode_ci
utf8mb4_0900_ai_ci
ztyzrc3y1#
您可以在将文本插入到正确的排序规则之前对其进行转换
SELECT CONVERT('abc' USING utf8mb4) COLLATE utf8mb4_0900_ai_ci;
mwg9r5ms2#
我的具体问题实际上是由substr引起的。
echo substr('ããããã', 0, 5); //ãã�
它使用utf8_encode,得到子字符串,然后使用utf8_decode。在这个例子中,字符串“ãããã”变成“° ° ",然后被裁剪成“°",当应用utf8_encode时,它以“° ° "结束。我使用Laravel辅助子串而不是php子串解决了这个问题。
2条答案
按热度按时间ztyzrc3y1#
您可以在将文本插入到正确的排序规则之前对其进行转换
mwg9r5ms2#
我的具体问题实际上是由substr引起的。
它使用utf8_encode,得到子字符串,然后使用utf8_decode。在这个例子中,字符串“ãããã”变成“° ° ",然后被裁剪成“°",当应用utf8_encode时,它以“° ° "结束。
我使用Laravel辅助子串而不是php子串解决了这个问题。