Hello all,

I have a problem with getting the intended output encoding with Xalan-j 2.2
as simple DOM-to-XML selializer.

My wish is to get output XML encoded as "windows-1251". The only results I
could achieve are:

1. Desired output encoding in the output with wrong encoding declaration in
the XML header:
<?xml version="1.0" encoding="UTF-8"?>

2. The desired encoding declaration in the header with this encoding being
really absent in the output (all non-ascii output goes as &#NNNN;):
<?xml version="1.0" encoding="windows-1251"?>
<root><child>&#1069;&#1090;&#1086;
&#1090;&#1077;&#1089;&#1090;</child></root>

Do I miss something or is it a bug?

The code fragment is:

  TransformerFactory tFactory = TransformerFactory.newInstance ();
  Transformer transformer = tFactory.newTransformer ();
//  transformer.setOutputProperty (OutputKeys.ENCODING, "windows-1251");
  DOMSource source = new DOMSource (document);
  FileOutputStream fos = new FileOutputStream ("E:\\test.xml");
  OutputStreamWriter out = new OutputStreamWriter (fos, "windows-1251" );
  StreamResult result = new StreamResult (out);
  transformer.transform (source, result);

With commented line remaining commented I get result #1, with uncommented -
result #2.

My environment is:
- Windows 2000 Prof with Russian locale
- JDK 1.3.1_01

Regards,
Sergey Ushakov

Reply via email to