1
我在解析一些嵌入XML文件中的HTML Unicode編碼的中文字符時很麻煩。JAXP Sax解析器解析中文字符時的Java-ME Midlet異常
我使用的Java ME與javax.xml.parsers.SAXParser中
一個這樣的字符的文件是詞:
<test>词</test>
信息看:http://www.isthisthingon.org/unicode/index.php?page=08&subpage=B&glyph=08BCD
但奇怪後
<test>后</test>
工作正常。
直接嵌入<test>詞</test>
也有效。
我的測試MIDlet有以下的源代碼:
import java.io.InputStream;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.helpers.DefaultHandler;
public class jaxp extends MIDlet {
public jaxp() {
}
protected void destroyApp(boolean unconditional)
throws MIDletStateChangeException {
}
protected void pauseApp() {
}
protected void startApp() throws MIDletStateChangeException {
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {};
String fileName = "test.xml";
InputStream is = jaxp.class.getResourceAsStream("/" + fileName);
saxParser.parse(is, handler);
} catch (Exception e) {
e.printStackTrace();
}
}
}
它與死亡:
org.xml.sax.SAXParseException:
at org.xml.sax.helpers.DefaultHandler.fatalError(+1)
at com.sun.ukit.jaxp.Parser.panic(+18)
at com.sun.ukit.jaxp.Parser.ent(+586)
at com.sun.ukit.jaxp.Parser.elm(+434)
at com.sun.ukit.jaxp.Parser.parse(+199)
at com.sun.ukit.jaxp.Parser.parse(+47)
at com.sun.ukit.jaxp.Parser.parse(+31)
at jaxp.startApp(+83)
at javax.microedition.midlet.MIDletProxy.startApp(+7)
at com.nokia.mid.impl.isa.ui.MIDletManager.callStartApp(+4)
at com.nokia.mid.impl.isa.ui.MIDletManager.activateMIDlet(+10)
at com.nokia.mid.impl.isa.ui.MIDletManager.run(+15)
我會很感激的任何想法。
我不是一個ME程序員,但是在普通的Java中,SAXParseException給出了一些關於原因的信息,這在這裏可能很有用。 –