Question

Quand je lance mon midlet Java Wireless Toolkit, midlet exécute correctement, mais quand il essaie d'analyser un champ de texte, l'erreur suivante se produit;

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)

Quel est le problème?

J'utilise JWT 2.5.2_01

Était-ce utile?

La solution

Problème résolu.

Comme mentionné précédemment McDowell, problème était sur les paramètres d'encodage. La meilleure façon de résoudre ce problème est de déclaration du codage d'informations WTK.

Dans votre répertoire de travail, de trouver le fichier ktools.properties ( 'workdir \ wtklib \ ktools.properties' ou 'workdir \ wtklib \ Linux \ ktools.properties' comme il est sur ma machine). Et ajoutez les lignes suivantes:

microedition.encoding= *encoding*

Pour le codage ASCII:

microedition.encoding=ISO8859_1

qui fera le travail (:

Autres conseils

Je suppose que c'est parce que vous êtes soit:

  • en utilisant le constructeur de String(byte[]) (ce constructeur doit généralement être évité)
  • en utilisant le constructeur String(byte[], String) incorrectement

Dans les deux cas, vous seriez données octet décodage aux données de caractères en utilisant le mauvais codage, un codage où la valeur d'octet 10010111 est illégale (au moins, en tant que premier octet).

Toute conversion de données byte aux données char (telles que la création d'une chaîne) impliquera la transformation des données de « un autre encodage » UTF-16. Vous devez savoir et préciser ce que « un autre encodage » est avant d'effectuer cette transformation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top