Pergunta

Como posso inserir caracteres especiais ASCII (por exemplo, com o valor ASCII 0x01) em uma string?

Eu pergunto porque estou usando o seguinte:

str.Replace( "<TAG1>", Convert.ToChar(0x01).ToString() );

E sinto que deve haver uma maneira melhor do que isso. Alguma ideia?

Atualizar:

Além disso, se eu usar essa metodologia, preciso me preocupar com o Unicode e o ASCII em conflito?

Foi útil?

Solução

Eu acredito que você pode usar \uXXXX para inserir códigos especificados em sua sequência.

ETA: Acabei de testar e funciona. :-)

using System;
class Uxxxx {
    public static void Main() {
        Console.WriteLine("\u20AC");
    }
}

Outras dicas

Além disso, se eu usar essa metodologia, preciso me preocupar com o Unicode e o ASCII em conflito?

Seu primeiro problema será suas tags conflitando com ASCII. Depois de chegar ao TAG10, você entrará em conflito com o feed 0x0a: line. Se você garantir que nunca receberá mais de nove tags, estará seguro. O codificação do Unicode (ou melhor: UTF8) é idêntico à codificação de ASCII quando os valores de byte estão entre 0 e 127. Eles apenas diferem quando o bit superior é definido.

E sinto que deve haver uma maneira melhor do que isso. Alguma ideia?

Parece que você está tentando manipular um pedaço binário usando ferramentas de texto. Se você quiser inserir o byte 0x01, por exemplo, você não está mais manipulando o texto, já que você não se importa com o que esse byte poderia Representar, e como parece que você nem se importa com qual codificação você estará produzindo.

Uma maneira melhor seria tratar o que você está manipulando como um pedaço binário de dados, o que permitiria inserir bits e bytes facilmente, sem usar soluções alternativas quebradiças e se preocupar com os efeitos colaterais.

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