2008-11-06 5 views
2

기본 처리기를 확장하여 Java에서 SAX 파서를 구현했습니다. XML에는 내용이 ñ 있습니다. 이 캐릭터를 때리면 깨집니다. 문자 배열에 char 배열을 출력하고 ñ 앞에 문자로 끝납니다. 비록 훨씬 더 많은 내용이 있더라도 다른 메소드가 호출되지 않기 때문에 파서가이 후에 멈춘 것처럼 보입니다. endElement 메소드는 결코 다시 호출되지 않습니다. 전에이 문제를 겪은 사람이 있습니까? 아니면 어떻게 대처해야할까요?SAX 파서가 깨진 경우 -

답변

4

파일의 인코딩은 무엇입니까? 파일의 인코딩 해독이 일치하는지 확인하십시오. 파서가 ASCII 또는 ISO-8859-1을 기본값으로 사용하고있을 수 있습니다. 당신은

<?xml version="1.0" encoding="UTF-8"?> 

UTF-8 그냥 그 파일이 사실에 무엇을해야합니다.

3

당신이 ASCII에 XMLS를 저장하는 경우 해당 문자를 다룰 것입니다, 당신은 단지 사용할 수 있도록 같은 인코딩을 설정할 수 있습니다 8 비트 문자 표의 하위 절반 (처음 128 자) 악센트 부호가있는 또는 다른 영어 이외의 문자를 XML에 포함 시키려면 XML을 UTF-8로 저장하거나 & # 241과 같은 문자를 이스케이프 처리해야합니다. ñ입니다.

0

이 문제가 발생했습니다. 당신이 먹는 XML 스트림은 ascii로 읽어야하고, ascii를 코드 내에서 'UTF-8'로 인코딩하거나 문자 스트림으로 변경해야합니다. 그러면 모두 괜찮을 것입니다. 이 같은

무언가가 당신을 도울 것입니다 :

File F = new File(C://Location); 
BuffeReader Readfile = new BufferReader(F); 
InputSource Encode = new InputSource(Readfile); 
Encode.setEncoding("UTF-8");