Pergunta

Eu tenho uma seqüência que eu preciso para converter a matriz equivalente de bytes no .NET.

Isso deve ser fácil, mas estou tendo uma cãibra cérebro.

Foi útil?

Solução

Você precisa para usar um codificação (System.Text.Encoding) para dizer .NET que você espera como a saída. Por exemplo, em UTF-16 (= System.Text.Encoding.Unicode) :

var result = System.Text.Encoding.Unicode.GetBytes(text);

Outras dicas

Primeiro trabalho fora qual codificação você deseja: você precisa saber um pouco sobre Unicode em primeiro lugar.

Em seguida descobrir qual System.Text.Encoding que corresponde ao . Meu Núcleo .NET refcard descreve a maioria dos mais comuns e como obter uma instância (por exemplo, por uma propriedade estática de Encoding ou ligando para um Encoding.GetEncoding .

Finalmente, o trabalho para fora se você quiser que todos os bytes de uma vez (que é a maneira mais fácil de trabalhar - chamada Encoding.GetBytes (string) uma vez e está feito) ou se você precisa quebrá-lo em pedaços - caso em que você vai querer usar Encoding.GetEncoder e então codificar um pouco de cada vez . O codificador cuida de manter o estado entre as chamadas, em caso de necessidade de quebrar a meio caminho através de um personagem, por exemplo.

O que codificação você está usando? Konrad entendeu muito bem para baixo, mas há outros lá fora, e você poderá obter resultados pateta com a pessoa errada:

byte[] bytes = System.Text.Encoding.XXX.GetBytes(text)

Onde XXX pode ser:

ASCII
BigEndianUnicode
Default
Unicode
UTF32
UTF7
UTF8

Como esta:

    string test = "text";
    byte[] arr = Encoding.UTF8.GetBytes(test);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top