可以';t在FQL中使用希伯来语“;其中“;子句


Can't use Hebrew in the FQL "Where" clause when searching by name

我有一个正在运行的PHP API脚本,使用它用FQL提取数据。然而,当我向WHERE部分(例如专辑/人名)添加子句时,就像name="שלום"一样,其中包括希伯来语,我会得到空结果。当使用英文名称时,比如name="hello",我会得到完整的数据。

我已经仔细检查过了——我应该得到数据,因为我确实有关于希伯来语表达的相关相册。

我真的不知道这是FQL还是PHP问题,但这似乎只是一个技术问题。

$fql = "SELECT aid,
       owner,
       link
FROM   album
WHERE  owner IN (SELECT uid
                 FROM   USER
                 WHERE  uid IN (SELECT uid2
                                FROM   friend
                                WHERE  uid1 = Me()))
       AND name = 'עברית'  
    ";
$param1 = array(
    'method' => 'fql.query',
    'query' => $fql,
    'callback' => ''
);
$fqlResult1 = $facebook->api($param1);

我该怎么修?

根据@Adnan的建议,我添加了我的评论作为答案。

因此,主要问题似乎是字符编码

在这种特殊情况下,请确保在键入外来符号时,您的编辑器(是的,就是您编写代码的编辑器)也设置为所需的编码。一个好的规则是确保在中使用相同的编码(我建议始终使用UTF-8)

  • 您的数据库(如果您使用一个-这种情况不同,因为它使用FQL),这将影响您的查询

  • 您的html(通过标签),这将影响您的输出

  • 您的代码(正是代码的来源,许多程序员或IDE的严肃文本编辑器都有一个菜单选项来设置源代码的编码),这将确保使用正确的字节序列来构建字符串和查询