0

Java で UTF-8 を使用して xml ファイルを作成する際に問題があります。問題: ファイル名に中点 (・) が含まれているファイルがあります。XMLタグ内にファイル名を書き込もうとすると、Javaコードを使用して、ファイル名にのようなジャンク番号が表示されます。

OutputStreamWriter osw =new OutputStreamWriter(file_output_stream,"UTF8");

上記は、xmlfile の作成に使用した Java コードです。問題を理解して分類する理由を誰か教えてもらえますか? 前もって感謝します

4

4 に答える 4

2

Java ソースはデフォルトで UTF-16 です。キャラクターが含まれていない場合は、エスケープを使用します。

String a = "\u00b7";

または、コンパイラに UTF-8 を使用するように指示し、それをそのままコードに記述します。

于 2012-07-04T13:44:25.733 に答える
1

その文字は ASCII 183 (10 進数) であるため、文字を にエスケープする必要があります·。ここにデモンストレーションがあります:"·"この回答を入力すると、"·"
と表示されます。この Web ページは XML であるため、ブラウザはあなたの文字を印刷しています。

入力全体を正しく安全にエスケープするapache commons-langライブラリのメソッドなど、これを実行できるユーティリティ メソッドがあります。StringEscapeUtils.escapeXml()

于 2012-07-04T13:41:53.953 に答える
0

手作業でXMLを作成しようとしないでください。目的のためにライブラリを使用してください。手作りのソリューションを壊す特別なケースの山の表面を引っ掻いているだけです。

コアJavaクラスを使用する1つの方法は、DOMを作成し、に書き込むno-opXSL変換を使用してそれをシリアル化することStreamResultです。(ドキュメントが大きい場合は、SAXイベントハンドラーを駆動することで同様のことができます。)

同じことを非常に簡単に行うのに役立つサードパーティのライブラリがたくさんあります。

于 2012-07-04T14:05:12.583 に答える
0

一般に、どこでも UTF-8 を使用することをお勧めします。

編集者は、ソースが UTF-8 であることを認識している必要があります。多くのエンコーディングを処理できる無料のプログラマ エディタ JEdit を使用できます。

javacコンパイラは、Java ソースが UTF-8 であることを認識している必要があります。Java では、@OndraŽižka のソリューションを使用できます。

これにより、IDE で 2 つの設定が行われます。

于 2012-07-04T13:52:09.530 に答える