Pregunta

¿Cómo puedo insertar caracteres especiales ASCII (p. ej.con el valor ASCII 0x01) en una cadena?

Lo pregunto porque estoy usando lo siguiente:

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

y siento que debe haber una manera mejor que ésta.¿Algunas ideas?

Actualizar:

Además, si uso esta metodología, ¿debo preocuparme por los conflictos entre Unicode y ASCII?

¿Fue útil?

Solución

Creo que puedes usar \uXXXX para insertar códigos específicos en su cadena.

Hora estimada de llegada:Lo acabo de probar y funciona.:-)

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

Otros consejos

Además, si uso esta metodología, ¿debo preocuparme por los conflictos entre Unicode y ASCII?

Su primer problema será que sus etiquetas entren en conflicto con ASCII.Una vez que llegues a TAG10, chocarás con 0x0A:linea de alimentación.Si se asegura de que nunca obtendrá más de nueve etiquetas, estará seguro.Codificación Unicode (o mejor dicho:UTF8) es idéntica a la codificación ASCII cuando los valores de bytes están entre 0 y 127.Sólo difieren cuando se establece el bit superior.

Y siento que debe haber una mejor manera que esta.¿Algunas ideas?

Parece como si estuvieras intentando manipular un fragmento binario usando herramientas textuales.Si desea insertar el byte 0x01, por ejemplo, ya no estás manipulando texto, ya que no te importa cuál sea ese byte podría representa, y dado que parece que ni siquiera te importa qué codificación generarás.

Una mejor manera sería tratar lo que estás manipulando como un fragmento binario de datos, lo que te permitiría insertar bits y bytes fácilmente, sin utilizar soluciones frágiles ni preocuparte por los efectos secundarios.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top