2008-08-11 9 views
6

Jaki jest najlepszy sposób weryfikacji/sprawdzenia, czy ciąg tekstowy jest serializowany do tablicy bajtów z określonym kodowaniem?Kodowanie serializacji testowej

W moim przypadku chcę sprawdzić, czy struktura XML jest serializowana do tablicy bajtów z kodowaniem UTF-8, które ma zmienną długość znaku. Jako przykład, moja obecna brzydka procedura polega na wstrzyknięciu znanego znaku, który wymaga dwóch bajtów w strukturze przed serializacją, a następnie zastąpienie dwubajtowego znaku znakiem ASCII i porównanie serializowanych długości tablicy. Powinno to dać dwie serializowane tablice, w których tablica zawierająca dwubajtowe znaki powinna mieć długość +1.

Plus, jeśli to rozwiązanie jest eleganckie dla Javy. Nie mogę wymyślić żadnego eleganckiego sposobu wyszukiwania sekwencji bajtów w tablicy bajtów. (Może być użyte do wyszukania znanej sekwencji bajtów reprezentującej pożądaną reprezentację znaku w UTF-8.)

Odpowiedz

2

Być może możesz deserializować tablicę bajtów używając znanego kodowania i upewnić się, że (a) nie wyrzuca żadnych wyjątków i (b) przekształca się z powrotem do oryginalnego ciągu znaków. Wygląda na to, że z twojego opisu scenariusza może nie być łatwo dostępny oryginalny ciąg. Czy może istnieć sposób na jego stworzenie?

0

To dobrze. Masz rację, nie mam oryginalnego ciągu, ponieważ testuję moduł, który tworzy dokument XML jako tablicę bajtów. Nie myślałem o deserializacji do String z oczekiwanym kodowaniem. To wystarczy.