假设我在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进行类似的查询。
答案 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"}]