2013-07-28 2 views
0

HTML 페이지에서 텍스트 파일로 추출 된 키릴 어 내용이 있습니다. 키릴 문자는이 파일에서 정상입니다. 그런 다음이 파일을 사용하여 Jena를 사용하여 RDF 파일을 만듭니다. ? 나는 RDF는 키릴 РўР РђРќРЎРљРћРџ-Р'Р 같다 РўРћР> Рђ 파일을 열 때jena 라이브러리를 사용하여 키릴 문자를 RDF 파일로 작성하십시오.

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

내가 틀렸어. 먼저 OutputStreamWriter에서 utf-8 인코딩 설정을 잊어 버렸습니다. 그리고 나서 필자가 여는 텍스트 편집기에서 파일을 다시로드하지 않았습니다. 이제 텍스트 편집기에서 OK이지만 일식에서는 여전히 이상한 문자가 표시됩니다. – vikifor

+2

그럼이 파일을 Eclipse에서 열 때를 ​​제외하고 파일은 정상입니까? 이클립스의 기본 인코딩을 UTF-8로 설정해야한다. http://www.eclipse.org/forums/index.php/t/29511/에서 몇 가지 제안이나 유사한 주제에 대한 다른 StackOverflow 질문을 참조한다. –

1

출력이 올바르지 만 제대로 표시되지 않을 수 있습니다.

새 FileReader (...)는 플랫폼 기본 문자 세트로 파일을 엽니 다. Windows에서는 UTF-8이 아니기 때문에 UTF-8이 아닌 다른 것으로 보았을 것입니다.

Jena는 기본적으로이 경우 UTF-8로 씁니다.

그래서 파일을 쓸 때 입력을 본 것과 같은 방식으로 파일을 볼 수 없습니다. UTF-8 인식 뷰어로보기해야합니다.