Pergunta

Qual é a melhor maneira de verificar/testar se uma string de texto é serializada em uma matriz de bytes com uma determinada codificação?

No meu caso, quero verificar se uma estrutura XML é serializada em uma matriz de bytes com codificação UTF-8, que tem comprimento de caracteres variável.Por exemplo, meu procedimento feio atual é injetar um caractere conhecido por exigir dois bytes na estrutura antes da serialização e, em seguida, substituir o caractere de dois bytes por um caractere ASCII e comparar os comprimentos da matriz serializada.Isso deve produzir duas matrizes serializadas onde a matriz contendo os caracteres de dois bytes deve ter comprimento +1.

Além disso, se a solução for elegante para Java.Não consigo pensar em nenhuma maneira elegante de procurar uma sequência de bytes em uma matriz de bytes.(Pode ser usado para procurar uma sequência de bytes conhecida que represente a representação de caracteres desejada em UTF-8.)

Foi útil?

Solução

Talvez você possa desserializar a matriz de bytes usando uma codificação conhecida e garantir que (a) ela não gere nenhuma exceção e (b) desserialize para a string original.Parece que pela sua descrição do cenário, você pode não ter a string original prontamente disponível.Pode haver uma maneira de criá-lo?

Outras dicas

Isso é bom.Você está certo, não tenho a string original, pois estou testando um módulo que cria um documento XML como uma matriz de bytes.Não pensei em desserializar para uma String com uma codificação esperada.Isso será o suficiente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top