2013-07-18 3 views
0

ISO-8859-1로 Eclipse 인코딩을 사용하여 Java 파일을 작성했습니다. 이 파일에서 , 나는 그런 그와 같은 문자열을 생성 (A XML 컨텐츠를 생성하고 데이터베이스에 저장하기 위해) 할 :문자 "&"를 ISO-8859-1에서 UTF-8로 유지하는 방법

// <image>&lt;img src="path_of_picture"&gt;</image> 
String xmlContent = "<image><img src=\"" + path_of_picture+ "\"></image>"; 

을 다른 파일에서,이 문자열을 얻고 새로운 문자열을 생성 이 생성자 : 위해

String myNewString = new String(xmlContent.getBytes(), "UTF-8"); 

은 XML 파서에 의해 이해 될 수

, 내 XML 내용이 변환해야합니다 : 불행하게도

<image>&lt;img src="path_of_picture"&gt;</image> 

, 나는 영장하는 방법을 찾을 수 없습니다 e xmlContent를 사용하여 myNewString에서이 결과를 얻습니다. 두 가지 방법을 시도했습니다 :

 // First : 
String xmlContent = "<image><img src=\"" + content + "\"></image>"; 
// But the result is just myNewString = <image><img src="path_of_picture"></image> 
// and my XML parser can't get the content of <image/> 

    //Second : 
String xmlContent = "<image>&lt;img src=\"" + content + "\"&gt;</image>"; 
// But the result is just myNewString = <image>&amp;lt;img src="path_of_picture"&amp;gt;</image> 

혹시 궁금한 점이 있으십니까?

+0

어떤 xml 파서를 사용하고 있습니까? 필자는 문자열 안에있는 어떤 형식의 '<' or '>'심볼도 파서 중 하나에 의해 구문 분석되지 않을 것이라고 생각합니다. – rahulserver

+0

이것은 텍스트 인코딩과 어떤 관련이 있습니까? & 문자는 ASCII이므로 UTF-8 및 iso-8859-1에서 동일하게 인코딩되므로 혼동 할 가능성이 없습니다. – Joni

+1

문제는 인코딩이 아닌 문자 이스케이프와 관련이 있습니다. [CDATA] (http://stackoverflow.com/questions/2784183/what-does-cdata-in-xml-mean)에 대해 알고 있습니까? – reto

답변

0

이것은 분명하지 않습니다. 그러나 문자열에는 인코딩이 없습니다. 당신이

String s = new String(someOtherString.getBytes(), someEncoding); 

을 쓸 때 그래서 당신은합니다 (getBytes() 방법에 사용되는) 기본 인코딩 설정에 따라 다양한 결과를 얻을 수 있습니다. 당신이 ISO-8859-1로 인코딩 된 파일을 읽고 싶다면

, 당신은 단순히 수행 byte[] bytes = Files.readAllBytes(path);

  • 파일의 인코딩을 사용하여 문자열을 만들 :

    • 이 파일에서 바이트를 읽어 String content = new String(bytes, "ISO-8859-1);

    당신은 UTF-8 인코딩으로 파일을 다시 작성해야하는 경우가 수행

    • UTF-8 인코딩으로 바이트로 문자열을 변환 : byte[] utfBytes = content.getBytes("UTF-8");
    • 가 파일에 바이트 쓰기 : Files.write(path, utfBytes); 나는 당신의 질문 인코딩 관련이 있지만 느낌 해달라고
  • 0

    당신은 "문자열 등을 만들려면 즉 "(A XML 컨텐츠를 생성하고 데이터베이스에 저장하기 위해),이 코드를 사용할 수 있습니다 같은 :

    public static Document loadXMLFromString(String xml) throws Exception 
        { 
         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
         DocumentBuilder builder = factory.newDocumentBuilder(); 
         InputSource is = new InputSource(new StringReader(xml)); 
         return builder.parse(is); 
        } 
    

    this는 SO 대답을 참조하십시오.

    +0

    그건 정확히 내 목표는 아니지만, 나는 CDATA를 사용하고 그것이 작동합니다. –

    관련 문제