Hi,
I am trying to write few Russian characters into a XML file using XStream. I am using unicode encoding "UTF8". Most of the Russian characters are getting written correctly, but not all.
Here is the code I am using:-
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
public class
Test {
public static void main(
String[] args) {
String str = null;
try {
str = Util.getRussianChar();
XStream xstream = new XStream(new DomDriver());
xstream.alias("test", A.class);
A a = new A();
a.setTest(str);
File file = new File("d:\\Russian1.xml");
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter
(new FileOutputStream(file),"UTF8"));
bufferedWriter.write("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>");
//bufferedWriter.write("<?xml version=\"1.0\" encoding=\"UTF-8?>");
bufferedWriter.newLine();
xstream.toXML(a, bufferedWriter);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
The value in String "str" is "Сибирь/Дальний восток". Here is my code of A.java :-
public class A {
String test;
/**
* @return the test
*/
public String getTest() {
return test;
}
/**
* @param test the test to set
*/
public void setTest(String test) {
this.test = test;
}
}
And here is the Russian1.xml :-
<?xml version="1.0" encoding="ISO-8859-1"?>
<test>
<test>Сибирь/Дальний во�?ток</test>
</test>
As can be seen above in the XML file, few Russian characters are not written correctly into the file.
Any idea what has gone wrong?
Regards,
Guru