如何解决PHP编码问题latin1_swedish_ci vs utf8_unicode_ci
| 我有一个关于编码的问题。在我的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中的所有名称并执行查询,如果不是,则跳过该名称。
你们当中有人知道是否可以做这样的事情吗?
谢谢,
马西亚尔
解决方法
无法完全确定您如何通过搜索框或其他方式在应用程序中寻找朋友? PHP脚本的作用是什么?
但是我认为您可以通过在连接数据库时指定字符集和排序规则来解决此问题。顺便说一句,我假设您正在使用MySQL。
每次您建立数据库连接时,请运行以下3个查询,不过我认为前两个查询可能就足够了。
SET character_set_connection = utf8
SET character_set_client = utf8
SET character_set_results = utf8
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。