¿Cómo obtengo una representación de bytes coherente de cadenas en C # sin especificar manualmente una codificación?

¿Cómo convierto un string a una byte[] en .NET (C #) sin especificar manualmente una codificación específica?

Voy a cifrar la cadena. Puedo cifrarlo sin convertirlo, pero aún me gustaría saber por qué la codificación entra en juego aquí.

Además, ¿por qué debería tenerse en cuenta la codificación? ¿No puedo simplemente obtener en qué bytes se ha almacenado la cadena? ¿Por qué existe una dependencia de las codificaciones de caracteres?

preguntado el 23 de enero de 09 a las 14:01

Cada cadena se almacena como una matriz de bytes, ¿verdad? ¿Por qué no puedo simplemente tener esos bytes? -

La codificación is lo que asigna los caracteres a los bytes. Por ejemplo, en ASCII, la letra 'A' se asigna al número 65. En una codificación diferente, puede que no sea lo mismo. Sin embargo, el enfoque de alto nivel de las cadenas tomadas en el marco .NET hace que esto sea en gran medida irrelevante (excepto en este caso). -

Para jugar al abogado del diablo: si quisiera obtener los bytes de una cadena en memoria (como los usa .NET) y manipularlos de alguna manera (es decir, CRC32), y NUNCA ha querido decodificarlos nuevamente en la cadena original ... No es sencillo saber por qué te interesan las codificaciones o cómo eliges cuál usar. -

Sorprendido que nadie haya dado este enlace todavía: joelonsoftware.com/articles/Unicode.html -

Un char no es un byte y un byte no es un char. Un char es tanto una clave en una tabla de fuentes como una tradición léxica. Una cadena es una secuencia de caracteres. (Las palabras, párrafos, oraciones y títulos también tienen sus propias tradiciones léxicas que justifican sus propias definiciones de tipo, pero estoy divagando). Al igual que los enteros, los números de coma flotante y todo lo demás, los caracteres se codifican en bytes. Hubo un tiempo en que la codificación era simple uno a uno: ASCII. Sin embargo, para dar cabida a toda la simbología humana, las 256 permutaciones de un byte fueron insuficientes y se diseñaron codificaciones para utilizar selectivamente más bytes. -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.