2012-01-24 9 views
0

次のxmlを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には、ローカルに英語(US)が設定されており、動作しています。

私の結論は、コーディングは動作していますが、私の環境は間違っているので、誰でもこの問題を解決する方法を知っていますか?いくつかのパラメータなどでJVMを実行できますか?

+0

XMLファイル*は実際には* ISO-8859-1でエンコードされていますか?それをバイナリエディタで見て、あなたの質問をファイル内のバイトで更新してください。 –

+0

16進エディタでXMLファイルを開くと、 'å'に表示されるバイトシーケンスは何ですか? – Tomalak

+0

'Windows-1252'を見ている可能性があります。これは、ISO-8859-1と似ていますが、それはまったく同じですが、まったく同じものではありません。 – Tomalak

答えて

0

Okejはので、私は彼がオプションを次のように私のJVMを実行する必要があり、答えを見つけた:結果がマシンのロケールに依存すること

JAVA_TOOL_OPTIONS : -Dfile.encoding=UTF8 
+0

通常、(適切なDOM APIを使用してXMLを構築して使用する場合)、これらのことを心配する必要はありません。 Javaオプションとしてファイルエンコーディングを設定する必要があるということは、間違っていることを意味します。 – Tomalak

0

は、デフォルトを使用してXMLファイルを読んでいることを示唆していますjvmの文字セット正しい方法は、XMLパーザがエンコーディングを把握させることです。これは通常、ドキュメントの解析時にReaderの代わりにInputStreamを使用することを意味します。

あなたが実際にファイルを解析部分を示さなかったが、私はあなただけではなく、FileInputStreamを使用し、文字セットを指定せずにFileReaderまたはInputStreamReader作成していると思います。

関連する問題