【发布时间】:2010-08-25 15:34:39
【问题描述】:
现在花费了几个小时,可以使用一些帮助!我们的网站查询我们的 db - 表列设置为 Latin1 排序规则,网站已将名称设置为 UTF8 进行查询。
数据是法语,当我们搜索包含重音字符的字符串时,我们会得到“排序规则的非法混合 (latin1_swedish_ci,IMPLICIT) 和 (utf8_general_ci,COERCIBLE) 用于操作 'like' " 错误。
如果您导航到完全加载数据的页面,它会显示重音字符没有问题,只是在使用搜索功能时它会中断。
我们尝试了很多方法,包括ALTER TABLE t1 CHANGE c1 c1 BLOB; ALTER TABLE t1 更改 c1 c1 文本字符集 utf8;
但这会损坏数据:每个字段中第一个重音字符之前的文本很好,但是字段中的其余文本被完全删除:“Métal”变为“M”。我正在使用 phpMyAdmin 来尝试修复这个 BTW。不确定这是否有问题。
那么数据是 UTF8 编码的吗?如果是这样,为什么 ALTER TABLE 不起作用,我已经看到它被提及为在这么多网页上解决此问题的方法!如果它不起作用的事实意味着数据不是 UTF8 编码的,我该如何找出它是什么?
【问题讨论】:
标签: php mysql character-encoding