Кодирование тестовой сериализации
-
08-06-2019 - |
Вопрос
Как лучше всего проверить/проверить, что текстовая строка сериализуется в массив байтов с определенной кодировкой?
В моем случае я хочу убедиться, что структура XML сериализуется в массив байтов с кодировкой UTF-8, имеющей переменную длину символов.Например, моя текущая уродливая процедура состоит в том, чтобы ввести в структуру символ, который, как известно, требует двух байтов перед сериализацией, затем заменить двухбайтовый символ символом ASCII и сравнить длины сериализованного массива.Это должно дать два сериализованных массива, где массив, содержащий двухбайтовые символы, должен иметь длину +1.
Плюс, если решение элегантно для Java.Я не могу придумать элегантного способа поиска последовательности байтов в массиве байтов.(Можно использовать для поиска известной последовательности байтов, представляющей желаемое представление символов в UTF-8.)
Решение
Возможно, вы могли бы десериализовать массив байтов, используя известную кодировку, и гарантировать, что (а) он не генерирует никаких исключений и (б) десериализуется в исходную строку.Судя по вашему описанию сценария, исходная строка может быть недоступна.Может есть способ его создать?
Другие советы
Это хорошо.Вы правы, исходной строки у меня нет, так как я тестирую модуль, создающий XML-документ в виде массива байтов.Я не думал о десериализации в строку с ожидаемой кодировкой.Это поможет.