- PR -

文字化け

1
投稿者投稿内容
kotaro01
会議室デビュー日: 2002/10/23
投稿数: 2
投稿日時: 2002-10-23 18:07
どなたか対処方法をご存知でしたらご教授お願いします。

問題ですが、XMLパーサーを利用し、プログラム内で生成した
XMLをShift_JISとしてファイルに書き出すのですが、
全角記号文字の〜という文字が?に化けてしまいます。

環境 --------------------------------
OS : windows 2000
JDK : 1.4
パーサー : jaxp 1.1 (crimson, xalan)
-------------------------------------

下記に具体的なソースと出力結果ファイルを掲載します。

[ソース]======================================================================

import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.TransformerConfigurationException;


public class Test {

public static void main(String args[]) {

try {

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(false);
DocumentBuilder builder = factory.newDocumentBuilder();

Document document = builder.newDocument();
Element testEl = document.createElement("TEST");
Text testTx = document.createTextNode( "テスト〜テスト" );
testEl.appendChild(testTx);
document.appendChild(testEl);

// ▼▼▼▼▼ [出力] ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
File f = new File("test.xml");
FileOutputStream fos = new FileOutputStream(f);
TransformerFactory tff = TransformerFactory.newInstance();
Transformer tf = tff.newTransformer();
tf.setOutputProperty("encoding", "Shift_JIS");
tf.setOutputProperty("indent", "yes");
tf.setOutputProperty("doctype-system", "http://www.test.co.jp/test.dtd");

tf.transform(new DOMSource(document), new StreamResult(fos));
fos.flush();
fos.close();
// ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

}
catch(Exception e){
e.printStackTrace();
}

}
}

==============================================================================

[ 出力結果 ]==================================================================

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE TEST SYSTEM "http://www.test.co.jp/test.dtd">
<TEST>テスト?テスト</TEST>
↑ ここが化けてしまう...

==============================================================================

以上です、お忙しい中、申し訳ありませんがよろしくお願いします。

同じ投稿内容で、Java Solutionの方にも投稿させてもらっています。
1

スキルアップ/キャリアアップ(JOB@IT)