4일동안 XML문서를 UTF-8로 처리하도록 수정하면서 얻은 테스트 결과입니다..ㅡㅡ;
이 결과를 얻도록 도움을 준 진광형한테 감사..ㅋㅋ
만약 UTF-8로 선언되지 않고 euc-kr로 선언되었다면 모두 문제 없습니다.
테스트 환경 : AIX5.2, WebLogic 8.1.6, IBM JDK 1.4.2
서버 file.encoding : IBM-eucKR
아래의 방법들 모두 InputSource에 setEncoding("UTF-8")을 해도 영향이 없음
1. UTF-8로 선언 / euc-kr로 인코딩된 XML의 경우
- 읽기
FileInputStream로 읽으면 에러발생 (java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence) (getParsedDocument()의 경우)
FileReader로 읽으면 성공 (getParsedDocument2()의 경우)
- 쓰기
FileOutputStream를 이용하면 UTF-8 쓰기 성공 (getParsedDocument()의 경우)
FileWriter를 이용하면 UTF-8 쓰기 안됨 (시스템 file.encoding으로 쓰기가 됨) (getParsedDocument2()의 경우)
2. UTF-8로 선언 / UTF-8로 인코딩된 XML의 경우
- 읽기
FileInputStream로 읽으면 성공 (saveXML의 경우)
FileReader로 읽으면 에러 (sun.io.MalformedInputException at sun.io.ByteToCharEUC.convert(ByteToCharEUC.java(Compiled Code)))
(saveXML2의 경우)
- 쓰기
FileOutputStream를 이용하면 UTF-8 쓰기 성공 (saveXML의 경우)
FileWriter를 이용하면 UTF-8 쓰기 안됨 (시스템 file.encoding으로 쓰기가 됨)
(saveXML2의 경우)