문제

우리는 JSTL을 사용하여 I18N을 구현하고 있으며 .properties 파일에 정의 된 리소스 텍스트가 ISO 8859 문자 (예 : Inidic Languages)를 갖는 데 태그로 렌더링 할 수 없다는 문제를 발견했습니다.

태그 및 BundleHelper 클래스의 코드를 통해 다이빙 한 후 궁극적으로 우리는 내부적으로 ResourceBundle.getBundle 메서드를 사용하여 PropertyResourceBundle을 사용하여 .properties 파일을 리소스 번들로로드합니다.

내부적으로 java.util.properties#load (inputStream) 메소드에 의존하지 않는 ISO 8859 문자 읽기를 지원하지 않으며 유일한 작업은 /u hex hex hex hex 형식에서 그러한 문자를 나타내는 것입니다. 전체 .properties 파일이 힌디어 언어라면!

이것에 대한 작업이 있습니까? .properties 파일에서 XML 형식을 사용해 보았지만 PropertyResourceBundle에서 인식하지 못했습니다!

환경 세부 사항은 다음과 같습니다. JDK 1.5, Weblogic 9.2

도움이 되었습니까?

해결책

당신은 절대적으로합니까? 가지다 JDK 1.5를 사용하려면? 최대 1.6으로 이동할 수 있다면 load(Reader) 파일을 다른 인코딩 (예 : UTF-8)에 저장할 수있는 오버로드. 나는 그것이 PropertyResourceBundle에 어떻게 적합한 지 잘 모르겠습니다.

ISO-8859-1 파일로 작업하더라도 해당 형식을 사용할 필요는 없습니다. 편집하다 파일. 당신이 사용할 수있는 native2ascii 다른 인코딩에서 파일을 변환합니다. "소스"속성 파일을 UTF-8로 유지 한 다음 실행하십시오. native2ascii 빌드의 일부로. 예를 들어:

native2ascii -encoding UTF-8 Foo.properties.utf8 Foo.properties

다른 팁

좋아하는 인코딩에 파일을 작성하고 Native2ascii 빌드 또는 배포 프로세스의 일부로 도구 (정확히이 목적으로 JDK와 함께 제공).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top