0

我有一个关于编码的问题。在我的 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 中的所有名称进行编码并执行查询,如果不只是跳过名称。

你们有谁知道是否可以做这样的事情?谢谢,

马夏尔

4

1 回答 1

2

不完全确定您是如何在您的应用程序中寻找朋友的 - 通过搜索框或其他方式?PHP脚本的作用是什么?

但我认为您可以通过在连接到数据库时指定字符集和排序规则来解决该问题。顺便说一句,我假设您使用的是 MySQL。

每次建立数据库连接时运行以下 3 个查询,但我认为前 2 个可能对您来说就足够了。

SET character_set_connection = utf8
SET character_set_client = utf8
SET character_set_results = utf8
于 2011-06-14T14:13:51.027 回答