Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Freebase Unicode代码点转换为Java字符串_Java_Unicode_Sparql_Freebase - Fatal编程技术网

将Freebase Unicode代码点转换为Java字符串

将Freebase Unicode代码点转换为Java字符串,java,unicode,sparql,freebase,Java,Unicode,Sparql,Freebase,我正在做一些Freebase查询。有时查询结果包含Unicode字符。如何将这些字符转换为Java字符串?(例如,The_Police_$0028; band$0029→ 警察(乐队))。我试过: 新字符串(参数以字节“UTF-8”表示) 但它不起作用。我在另一个问题中看到一个解决方案是方法replaceAll,但我认为还有其他方法更干净。这些方法不是UTF-8编码的,而是Unicode码点的私有编码。如果Freebase的Java客户端库不包含必要的解码方法,则需要自己编写一个解码方法,以获

我正在做一些Freebase查询。有时查询结果包含Unicode字符。如何将这些字符转换为Java字符串?(例如,
The_Police_$0028; band$0029
→ <代码>警察(乐队))。我试过:

新字符串(参数以字节“UTF-8”表示)

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

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

以下是有关编码的一些文档:

Tom Morris在回答中链接到的Freebase wiki页面说,Freebase python库可以处理这个问题。很明显,这是Python代码,但它们的密钥编码是在中的,不应该很难翻译。这也表明Python没有标准的库函数来实现这一点,所以Java也没有也就不足为奇了。OpenRefine也有一个Java实现,但您可能会花更多的时间跟踪和调整代码,而不仅仅是自己实现它——这太微不足道了。