dom4j를 이용하여 웹서비스에서 데이터를 파싱하는 중에 나온 에러입니다.

JUnit으로 테스트할 때는 이상이 없던터라 데이타가 나오지 않아 깜짝 놀랐네요.

로그를 찾아보니  SAXException: Invalid byte 2 of 2-byte UTF-8 sequence

말 그대로 UTF-8 로 인코딩된 정보가 아니라는 거죠.

당연히 수신측과 송신측의 인코딩 타입은 동일해야 겠죠.

 

그동안은 보내는 쪽 코딩을 주로 했던터라. 저역시 대부분 UTF-8로 변환하여 보냈습니다만

이번에는 수신할 때가 문제였네요. 아마 그쪽에서 인코딩 타입을 EUC-KR 으로 사용했었나 봅니다.

 

  SAXReader xmlReader = new SAXReader();
  xmlReader.setEncoding("EUC-KR");
  Document doc = xmlReader.read(inputstream);

 

이렇게 stream 데이터를 읽기 전에 EUC-KR로 인코딩타입을 명시하니 이상없이 동작하네요.

 

 

 

 

 

Hudson을 설치하고 Hudson관리화면으로 이동하면 Your container doesn't use UTF-8 to decode URLs  이라는 빨간 색 글자가 보이는 경우가 있다. 말 그대로 웹서버 컨테이너가 UTF-8로 지정되어 있지 않습니다. 라고 알려주는 것.

 

해결방법은 허드슨 톰캣관련 문서에서 확인할 수 있었다.( http://wiki.hudson-ci.org/display/HUDSON/Tomcat )

 

 

i18n
Some versions of Tomcat (such as 5.0.28) uses iso-8859-1 to decode URLs, which is in a clear violation of the relevant RFCs. To fix this problem, add the following URIEncoding attribute to the connector definition in $TOMCAT_HOME/conf/server.xml.
<Connector port="8080" URIEncoding="UTF-8"/>
Other people reported that a presence of RequestDumperValve would also cause a problem.
Related reads
  2. John O'Conner's blog entry about his experiment. See Elliotte's comment in particular (elharo.)
 
 

Tomcat의 경우 인코딩타입을 명백하게 지정하지 않은 경우 기본값으로 iso-8859-1 를 사용하게 되기 때문에 $TOMCAT_HOME/conf/server.xml 의 Connector에 URIEncoding="UTF-8" 이라고 지정해주어야만 한다. 

 

이클립스에서 Export --> java>javadoc 을 함으로써 소스파일을 쉽게 html 형식의 javadoc 파일을 쉽게 만들수 있다.

소스 코드를 UTF-8로 작성을 한 경우 빌드된 javadoc 파일들의 한글은 깨져 보이게 된다.

물론 브라우저 상에서 인코딩타입을 UTF-8로 변경하면 깨지지 않은 한글을 볼수 있지만

매번 다른 화면을 이동할 때마다 인코딩타입을 변경해주거나 자동선택을  선택해지 하고 UTF-8로 고정시켜야만 한다.

javadoc파일을 만들때 당연히 옵션이 있을 거라 생각하고 살펴보니..

역시나 javadoc 생성 마지막 단계에서 VM options을 지정함으로써 javadoc 파일의  Charset을 UTF-8로 설정할 수 있었다.

 

 

위의 그림과 같이 VM options 텍스트필드에 다음과 같이 입력한다.

 

-locale ko_KR -encoding UTF-8 -charset UTF-8 -docencoding UTF-8

 

 
블로그 이미지

시반

시반(詩伴)이란 함께 시를 짓는 벗이란 뜻을 가지고 있습니다. 함께 나눌수 있는 그런 공간이길 바라며...

카테고리

분류 전체보기 (233)
개발 이야기 (73)
WEB2.0 (57)
DB2 (24)
MySQL (6)
오라클 (26)
기타 (44)
취미 (0)
잡담 (2)