Jim Cobban
Usenet Archive
- Joined
- Sep 4, 2002
- Messages
- 45
- Reaction score
- 0
I must be missing something.
I am using org.apache.xml.serialize.XMLSerializer to save a DOM but I am not getting non-basic characters converted to UTF-8.
I create Text nodes in the DOM by, for example:
Document doc;
JTextArea textPrompt;
Text newTextNode;
Element descElt;
....
newTextNode = doc.createTextNode(textPrompt.getText);
descElt.appendChild(newTextNode);
The code to serialize the DOM is:
private void saveXml(Document document)
{
// rename the existing layout file
new File(fileName).renameTo(new File(fileName + "~"));
// write the document out
OutputFormat format = new OutputFormat(document);
format.setIndenting(true);
format.setLineWidth(0);
format.setPreserveSpace(true);
try {
XMLSerializer serializer;
serializer = new XMLSerializer (
new FileWriter(fileName),
format);
serializer.asDOMSerializer;
serializer.serialize(document);
}
catch (IOException ioe)
{
....
}
}
If I enter a character such as e' (e with acute accent) into the JTextArea and I look at the XML file using a non-UTF-8-aware editor I see that the e' has been inserted as a single byte, not as the 2 character UTF-8 escaped value. If I subsequently try to read the XML file using XERCES it blows up because of the invalid escape sequence.
How do I get a valid serialization of this DOM into XML using UTF-8?
I am using org.apache.xml.serialize.XMLSerializer to save a DOM but I am not getting non-basic characters converted to UTF-8.
I create Text nodes in the DOM by, for example:
Document doc;
JTextArea textPrompt;
Text newTextNode;
Element descElt;
....
newTextNode = doc.createTextNode(textPrompt.getText);
descElt.appendChild(newTextNode);
The code to serialize the DOM is:
private void saveXml(Document document)
{
// rename the existing layout file
new File(fileName).renameTo(new File(fileName + "~"));
// write the document out
OutputFormat format = new OutputFormat(document);
format.setIndenting(true);
format.setLineWidth(0);
format.setPreserveSpace(true);
try {
XMLSerializer serializer;
serializer = new XMLSerializer (
new FileWriter(fileName),
format);
serializer.asDOMSerializer;
serializer.serialize(document);
}
catch (IOException ioe)
{
....
}
}
If I enter a character such as e' (e with acute accent) into the JTextArea and I look at the XML file using a non-UTF-8-aware editor I see that the e' has been inserted as a single byte, not as the 2 character UTF-8 escaped value. If I subsequently try to read the XML file using XERCES it blows up because of the invalid escape sequence.
How do I get a valid serialization of this DOM into XML using UTF-8?