在Freebase MQL查询编辑器中使用Unicode查询

时间:2014-07-15 14:42:19

标签: unicode freebase unicode-escapes

假设我在freebase中进行以下查询,

  

[{
    " mid":" / m / 02y7vp",
    " name":null
  }]

我得到的答案是,

  

{     "结果":[{
      "名称":" G \ u兑换Verheugen",
      " mid":" / m / 02y7vp"
    }]
  }

我想在MQL中构造反向查询,

  

[{
    " mid":null,
    "名称":" G \ u兑换Verheugen"
  }]

但是这个查询不起作用。我也尝试过freebase here建议的编码,但这也不起作用。

我使用的unicode编码有什么问题吗?

修改

这就是我在做的事情:

1)将查询粘贴到网址

https://www.googleapis.com/freebase/v1/mqlread?query=[ {" mid":" / m / 02y7vp"," name":null}]

2)将结果下载到" mqlread"文件。 less mqlread显示以下内容:

  

{     "结果":[{
      "名称":" G \ u兑换Verheugen",
      " mid":" / m / 02y7vp"
    }]
  }

3)用所需的反向查询替换查询URL中的查询字段。

最后,我想使用Java进行类似的查询。

1 个答案:

答案 0 :(得分:1)

MQLread API返回JSON,需要对其进行解码。您可以在json.org上找到该定义,但大多数语言都可以轻松解码。 \ u转义引入了Unicode代码点的四位编码。由\ u00fc表示的Unicode代码点是“ü”(http://www.fileformat.info/info/unicode/char/fc/index.htm

虽然API返回以这种方式编码的名称,但它将接受查询中的字符和Unicode代码点。您没有提供正在使用的第二个URL,因此无法调试,无论您遇到什么问题与API无关,因为这两个都有效:

https://www.googleapis.com/freebase/v1/mqlread/?lang=/lang/en&query=[{"mid":null, "name":"G\u00fcnter Verheugen"}]
https://www.googleapis.com/freebase/v1/mqlread/?lang=/lang/en&query=[{"mid":null, "name":"Günter Verheugen"}]