我对编码有疑问。在我的MySQL数据库中,我用latin1_swedish_ci编写了用户(不好主意)。现在我将我的iPhone应用程序连接到Facebook并检索朋友姓名列表,我想看看我的应用程序中是否已经有这些朋友。可悲的是,当我尝试执行查询时,我收到此错误:
#1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_unicode_ci,COERCIBLE) for operation 'like'
所以基本上我尝试将Facebook好友的名字(在utf8中)与我的dabatase(latin1)中的名字混合。
我不想将整个数据库迁移到utf8,我只是想知道在PHP中是否可以检查名称编码是否与latin1兼容,或者至少是否可以对所有名称进行编码latin1并执行查询,如果不是只是跳过名称。
你们中有谁知道是否可以做这样的事情? 谢谢,
Masiar
答案 0 :(得分:1)
不完全确定您是如何通过搜索框或其他内容在您的应用中寻找朋友的? PHP脚本的作用是什么?
但我认为您可以通过在连接数据库时指定字符集和排序规则来解决问题。顺便说一下,我假设您使用的是MySQL。
每次建立数据库连接时都运行以下3个查询,但我认为前2个可能就足够了。
SET character_set_connection = utf8
SET character_set_client = utf8
SET character_set_results = utf8