Frage

Wenn ich betreiben meine midlet mit Java Wireless Toolkit, midlet läuft richtig, aber wenn es versucht, ein Textfeld zu analysieren, folgende Fehler auftreten;

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)

Was ist das Problem?

Ich bin mit JWT 2.5.2_01

War es hilfreich?

Lösung

gelöstes Problem.

Wie McDowell erwähnt vor, Problem zu kodieren Einstellungen war. Der beste Weg, dieses Problem zu überwinden bekannt, dass folgende kodieren Informationen von WTK.

Im Arbeitsverzeichnis finden ktools.properties-Datei ( 'workdir \ wtklib \ ktools.properties' oder 'workdir \ wtklib \ Linux \ ktools.properties' wie auf meinem Rechner). Und fügen Sie die folgenden Zeilen:

microedition.encoding= *encoding*

Für ASCII-Kodierung:

microedition.encoding=ISO8859_1

Das wird die Arbeit tun (:

Andere Tipps

Ich würde vermuten, dass es ist, weil Sie entweder:

  • mit dem String(byte[]) Konstruktor (dieser Konstruktor sollten generell vermieden werden)
  • mit dem String(byte[], String) Konstruktor falsch

In beiden Fällen würden Sie Byte-Daten in Zeichendaten werden decodiert die falsche Codierung, eine Codierung, wo die Byte-Wert 10010111 illegal ist (zumindest als erstes Byte).

Jede Umwandlung von byte Daten zu char Daten (wie zum Beispiel der Schaffung eines String) wird die Umwandlung von Daten von beinhaltet „eine andere Codierung“ in UTF-16. Sie müssen wissen, und geben Sie, was das „einige andere Codierung“ ist vor dieser Transformation durchgeführt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top