Rails 2.3.5和Ruby 1.8.7和Mysql 5.1.53

我正在加载一个csv文件,其中包含一个TM符号(商标)的字段

Tart Deco™-看起来像这样

我正在尝试进行事件记录查找:

Impactr.find(:first,:conditions => [“author_name =?and url_discovered =?”,author_name,site_profile_url])

Mysql::Error:操作'='的排序规则(latin1_swedish_ci,IMPLICIT)和(utf8_general_ci,COERCIBLE)的非法混合非法:SELECT * FROM influencers WHERE(author_name ='Tart Deco?'and url_discovered ='http://www.joelnylund .com')LIMIT 1

在ruby调试器中,字符串显示为:

p author_name
“塔可装饰\231”

我的表格编码为“utf8_general_ci”

所以我该怎么做?我真的不太在乎是否存储TM,这会很好,主要是我只是不想破坏它...

最佳答案

确保您的 table 上有uft8字符集:

alter table `influencers` convert to character set utf8 collate utf8_general_ci;

注意:your collation (utf8_general_ci) is not your encoding (character set)-MySQL的常见误解。

10-08 17:15