C# String ASCII Representação
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?
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.