Domanda

Quando eseguo il mio midlet con toolkit Java Wireless, midlet viene eseguito correttamente, ma quando si tenta di analizzare un campo di testo, si verifica errore seguente;

java.lang.RuntimeException: IOException reading reader invalid first byte 10010111
    at com.sun.cldc.i18n.Helper.byteToCharArray(+228)
    at com.sun.cldc.i18n.Helper.byteToCharArray(+9)
    at java.lang.String.<init>(+7)
    at z.a(+219)
    at z.a(+103)
    at DP4JPhone.a(+74)
    at DP4JPhone.a(+115)
    at DP4JPhone.commandAction(+120)
    at javax.microedition.lcdui.Display$DisplayAccessor.commandAction(+282)
    at javax.microedition.lcdui.Display$DisplayManagerImpl.commandAction(+10)
    at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(+68)
    at com.sun.midp.lcdui.AutomatedEventHandler.commandEvent(+47)
    at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.handleVmEvent(+186)
    at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(+57)

Qual è il problema?

Sto usando JWT 2.5.2_01

È stato utile?

Soluzione

problema risolto.

Come McDowell accennato prima, problema era sulle impostazioni di codifica. Il modo migliore per superare questo problema sta dichiarando codifica informazioni da WTK.

All'interno della vostra directory di lavoro, trovare ktools.properties di file ( 'workdir \ wtklib \ ktools.properties' o 'workdir \ wtklib \ Linux \ ktools.properties' come è sulla mia macchina). E aggiungere le seguenti righe:

microedition.encoding= *encoding*

Per la codifica ASCII:

microedition.encoding=ISO8859_1

che farà il lavoro (:

Altri suggerimenti

direi che è perché siete uno:

  • utilizzando il costruttore String(byte[]) (questo costruttore deve essere generalmente evitato)
  • utilizzando il costruttore String(byte[], String) erroneamente

In entrambi i casi, si sarebbe byte di dati di decodifica ai dati di carattere utilizzando la codifica sbagliata, una codifica in cui il valore del byte 10010111 è illegale (almeno, come primo byte).

Qualunque conversione da dati byte a char dati (come la creazione di una stringa) comporterà la trasformazione di dati da "altre codifiche" UTF-16. È necessario conoscere e specificare che cosa "qualche altra codifica" è prima di eseguire questa trasformazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top