2012-01-24 4 views
0

다음 코드를 punycode로 구문 분석하려고합니다. 작동하지 않습니다 (인코딩을 다르게 설정하려고 시도했습니다).스웨덴어 Chrs와 Xml 구문 분석이 작동하지 않습니다

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<domain index="1" domainname="teståbel.nu"> 

<?xml version="1.0" encoding="UTF-8" ?> 
<domain index="1" domainname="teståbel.nu"> 


public void setDomainName(String domainName) { 
     this.domainName = java.net.IDN.toUnicode(domainName); 

setDomain()을 실행하면 모든 것이 올바르게 설정됩니다.

로컬 컴퓨터가 스웨덴어로 설정된 Windows 7을 내 컴퓨터에서 실행했는데 실패했습니다. 그런 다음 Windows XP가 설치된 다른 컴퓨터에서 로컬로 설정된 영어 (미국)로 설정하면 작동합니다.

그래서 내 단점은 코딩이 작동하지만 내 환경이 잘못되었습니다. 누구든지이 문제를 해결할 방법을 알고 있습니까? JVM을 매개 변수 등으로 실행할 수 있습니까?

결과는 컴퓨터의 로케일에 따라 달라
JAVA_TOOL_OPTIONS : -Dfile.encoding=UTF8 
+0

XML 파일 *이 실제로 ISO-8859-1로 인코딩 되었습니까? 바이너리 편집기에서이 파일을보고 파일에있는 바이트로 질문을 업데이트하십시오. –

+0

16 진수 편집기로 XML 파일을 열면'å'에서 볼 수있는 바이트 시퀀스는 무엇입니까? – Tomalak

+0

'Windows-1252'를 보았을 가능성이 있으며, ISO-8859-1과 비슷하지만 모든 것이 바람직합니다.하지만 정확히 똑같은 것은 아닙니다. – Tomalak

답변

0

Okej, 나는 옵션 다음에 그는 내 JVM을 실행해야 jvm의 charset입니다. 올바른 방법은 XML 파서가 인코딩을 이해하도록하는 것입니다. 일반적으로 문서를 구문 분석 할 때 Reader 대신 InputStream을 사용합니다.

당신은 당신이 실제로 파일을 구문 분석 부분을 보여주지 않았다하지만 난 그냥 대신 FileInputStream를 사용하여 문자 집합을 지정하지 않고 FileReader 또는 InputStreamReader을 만드는 것 같아요.

+0

일반적으로 (적절한 DOM API로 XML을 작성하여 사용하는 경우) 이러한 사항에 대해 걱정할 필요가 없습니다. Java 옵션으로 파일 인코딩을 설정해야한다는 사실은 잘못하고 있음을 의미합니다. – Tomalak

0

은 기본값을 사용하여 XML 파일을 읽고있는 것을 제안 : 나는 답을 찾을 수 있도록

관련 문제