0

我使用我的元数据规范从公开可用的 edgelist 图形数据创建了一堆 ttl 文件。我无法将其中一些 ttl 文件上传到 Fuseki。这就是它们的样子(结构):

[] <authorID> <1399> ; 
<authorName> "Dimitris Samaras";. 
<1399> <authorIDof> "Dimitris Samaras" .  //line 363
<1399> <nodetype> <AUTHOR>  .

[] <authorID> <1407> ; 
<authorName> "Haojun Wang";. 
<1407> <authorIDof> "Haojun Wang" .  
<1407> <nodetype> <AUTHOR>  . 

[] <authorID> <1450> ; 
<authorName> "Zhigang Zhu";. 
<1450> <authorIDof> "Zhigang Zhu" .  
<1450> <nodetype> <AUTHOR>  .

等等....

当我尝试上传文件时,Fuseki 给了我以下错误:

14:32:33 INFO  [80] POST http://localhost:3030/ds/upload
14:32:33 INFO  [80] Upload: Filename: dblp1111.ttl, Content-Type=application/oct
et-stream, Charset=null => Turtle
14:32:33 ERROR [line: 363, col: 11] Bad character encoding
14:32:33 INFO  [80] 400 Parse error: [line: 363, col: 11] Bad character encoding
(25 ms)

我哪里错了?

4

1 回答 1

4

(修正答案)

这是行号错误的一种情况。它仅指示错误发生时解析器的位置(UTF-8 中的错误编码),但解析器会提前读取并在大块 (128K) 中使用 Java 内置的字节到字符 UTF8 转换以提高效率。

Java 不会报告错误编码在字节流中的位置,只会报告错误。所以你必须“分而治之”

您可以在 Jena "arq.utf8" 中尝试该程序,该程序读取 UTF-8 并进行自己的转换,以便报告错误编码所在的位置(在几个字符位置内)。

[错误的答案]

Turtle 是 UTF-8——别无选择。我怀疑“Dimitris Samaras”实际上有重音字符,这些字符在 ISO-8859 和 UTF-8 中编码不同。

于 2014-07-21T21:20:52.093 回答