2008-08-11 34 views
6

Quelle est la meilleure façon de vérifier/tester qu'une chaîne de texte est sérialisée en un tableau d'octets avec un certain codage? Dans mon cas, je veux vérifier qu'une structure XML est sérialisée à un tableau d'octets avec le codage UTF-8 qui a une longueur de caractère variable. A titre d'exemple, ma procédure laide actuelle consiste à injecter un caractère connu pour nécessiter deux octets dans la structure avant la sérialisation, puis en remplaçant le caractère à deux octets par un caractère ASCII et en comparant les longueurs de tableau sérialisé. Cela devrait produire deux tableaux sérialisés où le tableau contenant les caractères à deux octets devrait avoir une longueur de +1.Codage de sérialisation de test

Plus si la solution est élégante pour Java. Je ne trouve aucune façon élégante de rechercher une séquence d'octets dans un tableau d'octets. (Peut être utilisé pour rechercher une séquence d'octets connue représentant la représentation de caractères désirée en UTF-8.)

Répondre

2

Peut-être pourriez-vous désérialiser le tableau d'octets en utilisant un encodage connu et vous assurer que (a) il ne lance aucune exception , et (b) désérialise la chaîne originale. Il semble que d'après votre description du scénario, la chaîne d'origine ne soit pas facilement disponible. Pourrait-il y avoir un moyen de le créer?

0

C'est bon. Vous avez raison, je n'ai pas la chaîne d'origine, puisque je suis en train de tester un module qui crée un document XML sous la forme d'un tableau d'octets. Je n'ai pas pensé à désérialiser en String avec un encodage attendu. Cela fera l'affaire.