2013-07-28 1 views
0

У меня есть извлеченный кириллический контент с HTML-страницы в текстовый файл. В этом файле кириллица в порядке. Затем я использую этот файл для создания файла RDF с помощью Jena. Вот мой код:Запись кириллицы в RDF-файл с использованием библиотеки jena

private void createRDFFile(String webContentFilePath) throws IOException { 
    // TODO Auto-generated method stub 
    Model model = ModelFactory.createDefaultModel(); 

    RDFWriter writer = model.getWriter("RDF/XML"); 
    writer.setProperty("showXmlDeclaration", "true"); 
    writer.setProperty("showDoctypeDeclaration", "true"); 
    writer.setProperty("tab", "8"); 
    Writer out = new BufferedWriter(new OutputStreamWriter(
      new FileOutputStream(rdfFilePath), "UTF8")); 
    Resource resDest = null; 
    Property hasTimeStart = model.createProperty(ns + "#hasTimeStart"); 
    Property distrName = model.createProperty(ns + "#distrName"); 
    Property moneyOneDir = model.createProperty(ns + "#moneyOneDir"); 
    Property moneyTwoDir = model.createProperty(ns + "#moneyTwoDir"); 
    Property hasTimeStop = model.createProperty(ns + "#hasTimeStop"); 

    BufferedReader br = new BufferedReader(new FileReader(
      webContentFilePath)); 
    String line = ""; 
    while ((line = br.readLine()) != null) { 
     String[] arrayLine = line.split("\\|"); 
     resDest = model.createResource(ns + arrayLine[5]); 
     resDest.addProperty(hasTimeStart, arrayLine[0]); 
     resDest.addProperty(distrName, arrayLine[1]); 
     resDest.addProperty(moneyOneDir, arrayLine[2]); 
     resDest.addProperty(moneyTwoDir, arrayLine[3]); 
     resDest.addProperty(hasTimeStop, arrayLine[4]); 
    } 
    br.close(); 
    model.write(System.out, "RDF/XML"); 
    writer.write(model, out, null); 

} 

Когда я открываю файл ФРР кириллица, как РўР РђРќРЎРљРћРџ-ВР РўРћР> Рђ?. Может ли кто-нибудь мне помочь?

ответ

2

Кодировка записи UTF-8 на выходе писателя выглядит правильно, поэтому предполагается, что вы не читаете webContentFilePath с правильной кодировкой. В качестве диагностики вы можете попробовать просто прочитать этот файл, а затем записать его в простой файл UTF-8 (без RDF). Я предполагаю, что вам нужно будет четко указать настройку кодировки файла на br или убедиться, что очищенная веб-страница выписана в UTF-8 для начала.

+0

Я был неправ. Сначала я забыл настройки кодировки utf-8 в OutputStreamWriter, а затем я не перезагрузил файл в текстовом редакторе, с которого я открывался. Теперь в текстовом редакторе все в порядке, но в eclipse я все еще получаю эти странные символы. – vikifor

+2

Итак, ваш файл в порядке, за исключением случаев, когда вы открываете его в Eclipse? Вы должны установить кодировку по умолчанию для Eclipse в UTF-8, см. Http://www.eclipse.org/forums/index.php/t/29511/ для некоторых предложений или других вопросов StackOverflow по аналогичной теме. –

1

Возможно, выход правильный, но вы не видите его правильно.

новый FileReader (...) откроет файл с набором символов по умолчанию для платформы. Это не UTF-8 в Windows, поэтому, если он выглядит правильно, вы можете просмотреть его в чем-то отличном от UTF-8.

Jena пишет по UTF-8 по умолчанию и в этом случае.

Поэтому, когда вы пишете файл, вы не можете просматривать его так же, как вы просматривали ввод. Вам нужно просмотреть его с помощью средства просмотра, поддерживающего UTF-8.

 Смежные вопросы

  • Нет связанных вопросов^_^