我使用我的元数据规范公开提供了一系列来自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)
我哪里错了?
答案 0 :(得分:3)
(更正回答)
这是行号错误的一种情况。它仅指示错误发生时解析器的位置(UTF-8中的错误编码),但解析器提前读取并使用Java的bult-in字节到字符大块(128K)转换UTF8以提高效率。
Java不会报告字节流中错误编码的位置,只会报告错误。所以你必须“分而治之”
您可以尝试使用Jena“arq.utf8”中的程序,该程序读取UTF-8并使用自己的转换,以报告错误编码所在的位置(在几个字符位置内)。 / p>
[错误答案]
海龟是UTF-8 - 别无选择。我怀疑“Dimitris Samaras”实际上有重音字符,这些字符在ISO-8859和UTF-8中有不同的编码。