Codé en hexadécimal Chaîne de Tableau d'Octets

String str = "9B7D2C34A366BF890C730641E6CECF6F";

Je veux convertir str en tableau d'octets, mais str.getBytes() retourne 32 octets au lieu de 16.

  • Ce n'est pas un bug à tous.
  • Certains valide code java serait utile...
  • Nizet - sûr, que la Chaîne de 16 caractères, chacun codé sur 16 bits. Qui résultats dans - toujours pas vraiment surprenant - 32 octets. Java utilise UTF16 en interne, 1 char = 2 octets.
  • À la question de l'OP. La Chaîne de 32 caractères. En Outre Chaîne.getBytes() ne retourne pas la représentation interne de la Chaîne en octets. Elle retourne la Chaîne de caractères comme un tableau d'octets à l'aide de la plateforme par défaut l'encodage (qui pourrait être UTF8, ISO8859-1, CP-1252, ..., à l'aide de 1 octet par ASCII char)
  • Nizet - la question ne comprend pas valide code Java et c'est mon interprétation que le filandreux chose est de 16 octets valeur entière en format hexadécimal. (c'est pourquoi j'ai recommandé valable de code java dans mon premier commentaire)
  • OK. Compris. Sans une bonne question, difficile de donner une réponse correcte.