0

build.properties 파일을 사용하는 ant 빌드 스크립트가 있습니다. I는 다음과 같이이 있습니다특성 파일에 특수 문자가있는 인코딩 문제

release_type=debug 
version_code=1 
version_name=1.0.0 
logo_text=This is German: special chars like ä or ö 

내 문제는 내가 xml 파일의 자리를 대체 할 logo_text를 사용하는 것이, 지금 그 결과는 3의 2에 빌드 쓰레기 같은 :

<string name="logo_text">"This is German: special chars like ää or ü."</string> 

나는 3 개의 빌드 타겟 (각자 자신의 프로퍼티 파일을 사용한다)과 항상 같은 2가 엉망진창을 뽑아 낸다.

텍스트 소스는 항상 UTF-8 인 build.properties이며 빌드 파일은 UTF-8을 사용합니다. 두 사람 모두이 문제가있는 이유는 찾을 수 없습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<project name="branding-builds"> 
    <!-- code snipped --> 
    <copy todir="./${short_title}"> 
     <fileset dir="./brandings/${short_title}"> 
      <exclude name="**/*.png"/> 
      <exclude name="**/*.java"/> 
     </fileset> 
     <filterset> 
      <filter token="LOGO_TEXT" value="${logo_text}" /> 
     </filterset> 
    </copy> 
    <!-- code snipped --> 
</project> 

가 정보 : 특수 문자를 다시 작성하면 문제가 해결되지 않았다 엉망하지 않았다 & 붙여 넣기를 복사 있는지 확인

은 어떻게 텍스트로 자리를 대체합니다.

답변

4

속성 파일은 UTF-8로 인코딩되어서는 안됩니다. http://download.oracle.com/javase/6/docs/api/java/util/Properties.html :

견적을 입력/출력 스트림은 ISO 8859-1 문자 인코딩으로 인코딩됩니다. 이 인코딩에서 직접 표현할 수없는 문자는 유니 코드 이스케이프를 사용하여 작성한 일 수 있습니다. 단일 'u'문자 만 이스케이프 문자열로 허용됩니다 ( ). native2ascii 도구를 사용하여 속성 파일을 다른 문자 인코딩과 변환 할 수 있습니다.

+0

감사합니다. ISO 8859-1 인코딩으로 속성을 저장하면 해결되었습니다. 나는 왜 그들이 UTF-8을 지원하지 않는지 이해하지 못한다. 감사! – WarrenFaith