这里的第一个问题。已经很久没见了,非常感谢这个网站提供的巨大帮助。
因此,我们完成了将包含数百个遗留组件的相当大的系统迁移到UTF8。感谢所有的鱼,Latin1,但UTF8是未来,这次迁移是强制性的。
所以,除了在MySQL上搜索LIKE之外,一切都很有用。我在这里搜索了其他问题,但他们都解决了latin1的主要问题 - > utf8迁移,但不搜索,REGEX和LIKE ....
例如,我尝试
SELECT * FROM CITIES,其名称类似'%SAO PAULO%'
并获得零结果
SELECT * FROM CITIES,其名称类似'%SÃOPAULO%'
并获得预期结果(注意A上的波浪号)。
使用latin1默认排序规则latin1_swedish执行预期的操作,将A视为Ã,将C视为Ç。但是没有一个UTF8校对可以做到这一点。
我该怎么办?任何帮助将不胜感激。谢谢大家,我希望为这个社区做出贡献,就像它为我自己的工作做出贡献一样。
答案 0 :(得分:1)
我会冒险猜测并说你正在使用utf8_bin
。您需要使用utf8_unicode_ci
进行正确的比较,就像您尝试做的那样。它稍慢,但更正确。
答案 1 :(得分:0)
也许您可以使用CONVERT函数将LATIN1转换为UTF8:http://dev.mysql.com/doc/refman/5.0/en/charset-convert.html
此外,也许转换有问题,以下链接看起来像是一个很好的指南,用一些基本的* NIX命令将数据库转换为UTF8:http://en.gentoo-wiki.com/wiki/Convert_latin1_to_UTF-8_in_MySQL
希望这有点道理。祝你好运!