2009-11-13 3 views
2

안녕하세요, 스프링 프레임 워크를 사용하여 개발 된이 j2ee 웹 응용 프로그램을 가지고 계십시오. nihongo 문자의 mnessage를 특성 파일에서 렌더링하는 데 문제가 있습니다. native2ascii를 사용하여 파일을 ascii로 변환하려고 시도했는데 문제가 해결되었습니다. 명령 프롬프트에서 native2ascii를 실행하여 인코딩을 수동으로 변환하는 대신 구성 파일에서 인코딩을 ascii로 설정하는 방법이 있습니까?스프링 속성 파일

+0

속성 파일이 utf8로 인코딩 되었습니까? 그렇지 않다면, 무엇? – cletus

+0

예 .. UTF-8입니다 – cedric

답변

2

ASCII를 사용해야하는 등록 정보 파일 및 리소스 번들에서는 AfAIK를 사용해야합니다. 스프링 XML 구성 파일 내에서 유니 코드가 정상적으로 작동해야합니다. 원하는 경우 유니 코드로 특성 파일을 편집하고 빌드 프로세스의 일부로 자동으로 native2ascii를 실행할 수 있습니다 (Ant, Maven 등).

+0

내부 스프링 XML 구성에 의해 유니 코드가 잘 작동한다는 것은 무엇을 의미합니까? 이미 나의 봄 설정 – cedric

+0

\t \t 인코딩 필터 \t \t <필터 클래스> org.springframework.web.filter 너무이 줄을이 방법으로 .CharacterEncodingFilter \t \t \t \t \t 부호화 \t \t \t UTF-8 \t \t \t \t \t \t \t encodingScheme \t,697,\t UTF-8 \t \t \t \t \t \t forceEncoding \t 사실 \t \t \t \t \t cedric

+0

당신은하지 않았다 메시지가 정확히 무엇인지 말하십시오. 그것들이 Spring 빈처럼 생성하는 일종의 Properties 객체와 연관되어 있다면 beans.xml (또는 무엇이든) 파일에 UTF-8 텍스트를 String 속성 값으로 넣을 수 있습니다. 적절한? xml 선언. 그러나 .properties 파일의 경우 native2ascii를 사용해야한다고 생각합니다. – Dan

2

:

부하 (리더)/저장을 (Writer, String) 메서드는 아래에 지정된 간단한 줄 지향 형식으로 문자 기반 스트림에서 속성을로드하고 저장합니다. load (InputStream)/store (OutputStream, String) 메서드는 입/출력 스트림이 ISO 8859-1 문자 인코딩으로 인코딩된다는 점을 제외하면 load (Reader)/store (Writer, String) 쌍인 과 동일한 방식으로 작동합니다. 이 인코딩에서 직접 표현할 수없는 문자는 유니 코드 이스케이프를 사용하여 작성할 수 있습니다. 단일 'u'문자 만 이스케이프 시퀀스에 허용됩니다. native2ascii 도구는 등록 정보 파일을 다른 문자 인코딩과 변환하는 데 사용할 수 있습니다.

(많은 잘못 여기에 대해 얘기 같은 ASCIIISO 8859-1하지이다).

따라서 native2ascii을 사용하지 않고 특정 문제를 해결하려면 Properties#load(Reader)InputStreamReader(input, charset)을 대신 사용해야합니다.

Properties properties = new Properties(); 
properties.load(new InputStreamReader(classLoader.getResourceAsStream("file.properties"), "UTF-8")); 

이 방법은 4 년 전 Java 1.6에 도입되었습니다. 당신도 그것을 사용하고 있는지 확인하십시오.

저는 스프링을 사용하지 않으므로 스프링을 어떻게 작동시키는 지 자세히 설명 할 수는 없지만 Spring의 리소스 번들 관리자를 대체하거나 대체해야한다는 것은 분명합니다.