Cómo obtener una representación uniforme de bytes de una cadena en C# sin especificar manualmente la codificación
¡Hola a todos! Soy nuevo en C# y me encontré con un problema que me dejó perplejo. Necesito transmitir cadenas por la red y hashearlas, pero noté que cuando convierto una cadena en un array de bytes, el resultado puede diferir en diferentes computadoras.
Aquí hay un ejemplo de mi código:
string message = "Привет, мир!";
byte[] bytes = Encoding.Default.GetBytes(message);
// Envío bytes por la red o calculo el hash
El problema es que Encoding.Default da resultados diferentes según la configuración regional del sistema. En mi Windows con configuración regional rusa funciona, pero en un servidor con configuración regional inglesa no. Leí que Encoding.ASCII pierde caracteres, y Encoding.Unicode agrega BOM (Byte Order Mark), que lo arruina todo.
Necesito una solución que funcione igual en cualquier plataforma (Windows, Linux, Mac) y que no requiera que especifique manualmente la codificación cada vez. ¿Cómo convierto correctamente una cadena a bytes en C# sin
No answers yet.
Inicia sesión para dejar una respuesta