【问题标题】:Convert Freebase Unicode codepoints to Java String将 Freebase Unicode 代码点转换为 Java 字符串
【发布时间】:2013-09-08 18:00:26
【问题描述】:

我正在做一些 Freebase 查询。有时查询的结果包含 Unicode 字符。如何将这些字符转换为 Java 字符串? (例如,The_Police_$0028band$0029The_Police_(band))。我试过了:

new String(arg_in_byte,"UTF-8") 

但它不起作用。我在另一个问题中看到一个解决方案是方法replaceAll,但我认为还有其他一些更清洁的方法。

【问题讨论】:

  • Freebase wiki 页面 MQL key escaping Tom Morris 在他的回答中链接到该页面说 freebase-python 库可以处理这个问题。这显然是 Python 代码,但它们的密钥编码在 mqlkey.py 中,翻译起来应该不难。这也表明 Python 没有标准库函数来执行此操作,因此 Java 也没有标准库函数也就不足为奇了。
  • OpenRefine 也有 Java 实现,但您可能会花费更多时间来跟踪和调整代码,而不仅仅是自己实现它,这太微不足道了。 github.com/OpenRefine/OpenRefine/blob/master/extensions/…

标签: java unicode sparql freebase


【解决方案1】:

这些不是 UTF-8 编码的,而是 Unicode 代码点的私有编码。如果您的 Freebase Java 客户端库不包含必要的解码方法,您需要自己编写一个以获取美元符号 ($) 后的四位数字,将它们解释为十六进制整数,然后将其转换为 Java字符(内部也使用 Unicode 代码点)。

这里是一些关于编码的文档: http://wiki.freebase.com/wiki/MQL_key_escaping

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-13
    • 2011-10-22
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 2021-10-27
    相关资源
    最近更新 更多