使用jena库将西里尔文写入RDF文件

使用jena库将西里尔文写入RDF文件,rdf,jena,cyrillic,Rdf,Jena,Cyrillic,我将西里尔文内容从HTML页面提取到文本文件。西里尔文在这个文件中是正确的。然后我使用这个文件使用Jena创建一个RDF文件。这是我的密码: private void CreateRffile(字符串webContentFilePath)引发IOException{ //TODO自动生成的方法存根 模型模型=ModelFactory.createDefaultModel(); RDFWriter writer=model.getWriter(“RDF/XML”); writer.setPrope

我将西里尔文内容从HTML页面提取到文本文件。西里尔文在这个文件中是正确的。然后我使用这个文件使用Jena创建一个RDF文件。这是我的密码:

private void CreateRffile(字符串webContentFilePath)引发IOException{
//TODO自动生成的方法存根
模型模型=ModelFactory.createDefaultModel();
RDFWriter writer=model.getWriter(“RDF/XML”);
writer.setProperty(“showXmlDeclaration”、“true”);
writer.setProperty(“showDoctypeDeclaration”、“true”);
writer.setProperty(“tab”、“8”);
Writer out=新缓冲写入程序(新输出流写入程序(
新文件输出流(rdfFilePath),“UTF8”);
资源resDest=null;
Property Hastmestart=model.createProperty(ns+“#Hastmestart”);
Property DistricName=model.createProperty(ns+“#DistricName”);
Property moneyOneDir=model.createProperty(ns+“#moneyOneDir”);
Property moneyTwoDir=model.createProperty(ns+“#moneyTwoDir”);
Property Hastinmestop=model.createProperty(ns+“#Hastinmestop”);
BufferedReader br=新的BufferedReader(新文件读取器(
webContentFilePath);
字符串行=”;
而((line=br.readLine())!=null){
字符串[]arrayLine=line.split(“\\\\”);
resDest=model.createResource(ns+arrayLine[5]);
resDest.addProperty(HastinemStart,arrayLine[0]);
resDest.addProperty(DistrictName,arrayLine[1]);
resDest.addProperty(moneyOneDir,arrayLine[2]);
resDest.addProperty(moneyTwoDir,arrayLine[3]);
resDest.addProperty(Hastinestop,arrayLine[4]);
}
br.close();
model.write(System.out,“RDF/XML”);
writer.write(model,out,null);
}
当我打开RDF文件时,西里尔语就像是ПўќђќЎљћџ-П'ў?ўћћ›ђ。
有人能帮我吗?

输出写入程序上的UTF-8写入编码看起来正确,因此这表明您没有使用正确的编码读取
webContentFilePath
。作为一种诊断,您可以尝试读取该文件,然后将其写入普通UTF-8文件(无RDF)。我的猜测是,您必须明确地将文件编码设置为
br
,或者确保首先以UTF-8编写刮取的网页。

输出编写器上的UTF-8写入编码看起来是正确的,因此这表明您没有使用正确的编码读取
webContentFilePath
。作为一种诊断,您可以尝试读取该文件,然后将其写入普通UTF-8文件(无RDF)。我的猜测是,您必须明确地将文件编码设置为
br
,或者确保从一开始就用UTF-8写出已删除的网页。

可能是输出是正确的,但您没有正确地看到它

新的FileReader(…)将使用平台默认字符集打开文件。这不是Windows上的UTF-8,所以如果它看起来正确,那么您可能会在UTF-8以外的其他地方查看它

Jena默认使用UTF-8写入,在本例中也是如此


因此,在编写文件时,不能以查看输入的方式查看文件。您需要使用支持UTF-8的查看器来查看它。

可能是输出是正确的,但您没有正确地看到它

新的FileReader(…)将使用平台默认字符集打开文件。这不是Windows上的UTF-8,所以如果它看起来正确,那么您可能会在UTF-8以外的其他地方查看它

Jena默认使用UTF-8写入,在本例中也是如此


因此,在编写文件时,不能以查看输入的方式查看文件。您需要使用支持UTF-8的查看器进行查看。

我错了。首先我忘记了OutputStreamWriter中的utf-8编码设置,然后我没有在打开的文本编辑器中重新加载文件。现在在文本编辑器中是可以的,但是在eclipse中我仍然收到这些奇怪的字符?您应该将Eclipse的默认编码设置为UTF-8,请参阅以获取一些建议,或者其他类似主题的StackOverflow问题。我错了。首先我忘记了OutputStreamWriter中的utf-8编码设置,然后我没有在打开的文本编辑器中重新加载文件。现在在文本编辑器中是可以的,但是在eclipse中我仍然收到这些奇怪的字符?您应该将Eclipse的默认编码设置为UTF-8,有关一些建议或类似主题的其他StackOverflow问题,请参阅。