2017-10-19 20 views
3

J'ai eu une question à UTF-8 dans Android. J'ai besoin de stocker une chaîne dans un octet [] au format UTF-8.UTF-8 dans Android par rapport à la définition de UTF-8

Jusqu'à présent, si bon. Voici mon code où le type d'utilisateur dans un editText et cela doit être stocké dans un octet [] en UTF-8 Format:

idString = editId.getText().toString(); 
byte[] valueId = idString.getBytes(Charset.forName("UTF-8")); 

maintenant si je tape par exemple le nombre: 1

il se doit être stockés comme unité UTF-8: 31

mais il est stocké sous forme de la valeur décimale: 49

Je n'obtenir la colle ce que mon échec est, si quelqu'un peut me aider?

Merci

Répondre

2

Le problème est avec les valeurs hexadécimales et décimales. Il est stocké dans un format connu sous le nom de table ASCII. Le numéro 1 est stocké sous forme décimale ou 49 hex 31.

Cela pourrait vous aider http://www.asciitable.com/

+0

Ouais merci qui a aidé un peu. Donc, il est juste si le débogage me montre 49 il est stocké comme 0x31 dans mon tableau? Dans les bits 0011 0001? – Fab

+1

Oui, la notation 0x indique qu'il s'agit d'une valeur hexadécimale et non d'une valeur entière. Vous pouvez utiliser des outils de conversion hexadécimale en ligne, http://www.binaryhexconverter.com/hex-to-decimal-converter, ou vous pouvez visualiser directement la valeur en mode debug, affichée ici https://stackoverflow.com/questions/17447013/android-studio-debugging-affichage-variables-comme-hexadecimal –

+0

Merci donc tout a fonctionné je viens de me confondre à cause de la fenêtre de débogage. – Fab