[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Sax filter encoding problem
I am trying to write a simple sax filter in Java to experiment spliting large xml file into small ones. But I found I couldn't get same content as that in original xml file. For example, I have a xml file as following which was encoded as "UTF-8". <?xml version="1.0" encoding="utf-8"?> <Root> <Record>âMultipurposeâ abcd</Record> <Record>the âbanana oilâ test</Record> </Root> It looks OK when I used IE to browse it but after I used it as input file and run my sax program (just use sax API to write same file to output file), the content changed to as followings: <Root> <Record>Multipurpose abcd</Record> <Record>the banana oil test</Record> </Root> I checked the respective binary: "e2 80 9c " changed to "93" and "e2 80 9d" changed to "94"! It's not what I wanted and also I got error when I tried to use IE to browse it! At this time, I used parser.parse(new InputSource(new File (input_file_name).toURL().toString ())); in my program. And then, I tried another way: FileReader in_file = new FileReader(input_file_name); parser.parse(new InputSource(new File (args[0]).toURL().toString ()))); after running my program, the output looks like: <Root> <Record>âMultipurposeâ abcd</Record> <Record>the âbanana oilâ? test</Record> </Root> Speaking with binary, "e2 80 9c " is OK but "e2 80 9d" still was changed to "94". It's also illegl character when I use IE to browse it. Can any body tell me how to handle this problem? And which way is best way to wrap the input file in inputsource? Any reply would be appreciated! My test program likes following: public class parseXML extends DefaultHandler { public void startElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, Attributes atts) { ...... } public void characters(char[] ch, int start, int length) { for(int i=0; i<length; i++){ System.out.print(ch[start+i]); } ....... } ...... } Thanks. Leo __________________________________ Do you Yahoo!? Yahoo! Finance: Get your refund fast by filing online. http://taxes.yahoo.com/filing.html
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|