2012-02-18 5 views
0

私は解析しようとしているxmlファイルを持っており、UTF-16でエンコードされています。私はそれをドキュメントに入れるためにUTF-8に変換したいと思います。私はviの中でファイルを開くとUTF-16ファイルをUTF-8ストリームに挿入するにはどうすればよいですか?

、私が見<^@ tのようなもの^ @ A^@ gを^ @>^@

これは私が思ったのコードが動作しますされています

InputStream in = _context.openFileInput(_fileName); 
InputSource is = new InputSource(new InputStreamReader(in, "UTF-8")); 
is.setEncoding("UTF-8"); 
doc = builder.parse(is); 

これは正しく動作しません。文字列にストリーミングされた後に認識されない文字が残っています。

また、文書を解析しようとしたとき、私は取得エラーは次のとおりです。

org.xml.sax.SAXParseException: name expected (position:START_TAG <null>@1:1 in [email protected]) 
+0

ドキュメントがUTF-16でエンコードされている場合は、UTF-16としてデコードします。あなたはJavaオブジェクト(ノード)を解析しています。なぜあなたはUTF-8をミックスに導入したいのですか? – McDowell

答えて

3

ファイルを読み込むたら、あなたが戻ってテキストにそれを書く(またはバイトに変換)することを選択するまで、エンコードは関係ありません読んだらJVMで適切に表現されるからです。したがって、このようなものが動作するはずです:

データを保存しようとするまで、他のエンコーディングを設定する必要はありません。

+0

ありがとう!ファイルはUTF-16LEであることが判明しました。 – benkdev

関連する問題