특수 문자와 관련된 일반적인 문제로 인해 문제가 있습니다.특수 문자 문제
우리는 Linux에서 설치된 production tomcat 서버에서 실행중인 mbean을 가지고 있습니다.이 mbean은 xml 피드를 가져 와서 추가 처리를 위해 보냅니다. mbean이 '??'로 대체되는 특수 문자를 처리해야 할 때 문제가 발생합니다. 점수. OS 버전과 tomcat 버전이 모두 동일하지만 동일한 코드가 인 로컬 개발 및 QA 서버에서 사용할 수 있습니다.
StringBuffer article = new StringBuffer();
InputStreamReader is = new InputStreamReader(new FileInputStream(pendingFile), "utf-8");
int data;
while ((data = is.read()) != -1) {
article.append((char)data);
}
is.close();
is = null;
log.debug("Read in \n" + article.toString());
try {
js.writeTextMessage(article.toString(), "server", hostName, processor);
} catch (JMSException je) {
log.error("jms exception: " + je.getMessage());
// server probably shutdown
this.stop();
return;
}
위의 코드는 "대기중인 파일 '에서 파일을 읽 StringBuffer를에 추가합니다, 로그에 파일을 읽고 :는 JMS Q로 보낼 XML 피드를 읽고 코드의 일부는 아래에 붙여 JMS 대기열에 대한 게시물. 로그 파일은 특별한 charas를 ?? '만 생산성에'특수 문자 XML 피드는 다음과 같습니다 : 톰캣 server.xml의 UTF-8
- URI 인코딩 : 우리는 포함 모든 possibilites을 시도
<?xml version="1.0" encoding="UTF-8"?> <hedline> <hl1> Hotelliyöpymiset: Missä hinta ja palvelu vastaavat toisiaan (tai eivät) - asiakastyytyväisyyden huippukaupungit </hl1> </hedline>*
.
- LANG 환경 변수가 Linux에서 en_US.UTF-8 인 것으로 확인되었습니다.
- xml 파일에 BOM이없는 UTF8 형식의 기본 인코딩이 있는지 확인했습니다.
원인이 Tomcat 서버 또는 Linux OS에서 발생하는지 여부를 확인할 수 없습니다. 도와주세요.