Estoy tratando de hacer algo que creo que debería ser bastante simple, pero ya he invertido demasiado tiempo en él y he intentado varios enfoques diferentes que investigué pero fueron en vano.C# UTF8 Lectura/Salida
Básicamente, tengo una gran lista de nombres que tienen caracteres "especiales" en ellos del juego de caracteres UTF8.
Mi objetivo final es leer en cada nombre, y luego hacer una solicitud HTTP usando ese nombre en la URL como una variable GET.
Mi primer objetivo fue leer un nombre de un archivo, y ponerlo en estándar para confirmar que podía leer y escribir correctamente UTF8, antes de crear las cadenas y hacer todas las solicitudes HTTP.
El archivo test1.txt
hice contenían sólo esta contenido:
OWNAGE
Luego utiliza el código C# para leer en el archivo. Establecí la codificación StreamReader
y Console.OutputEncoding
en UTF8
.
static void Main(string[] args)
{
Console.OutputEncoding = System.Text.Encoding.UTF8;
using (StreamReader reader = new StreamReader("test1.txt",System.Text.Encoding.UTF8))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
Console.ReadLine();
}
Para mi sorpresa me sale este tipo de salida:
salida esperada es exactamente el mismo que el contenido del archivo originales.
¿Cómo puedo estar seguro de que las cadenas que voy a construir para realizar solicitudes HTTP serán correctas si no puedo siquiera hacer una tarea simple como leer/escribir cadenas UTF8?
+1 Esto es correcto. También asegúrese de guardar su archivo de muestra usando UTF-8 y no ANSI que es el predeterminado en el Bloc de notas. – Yuck
Esto, junto con la sugerencia de Yuck de asegurarme de haber seleccionado UTF-8 en lugar de ANSI al guardar el archivo resuelto. Gracias chicos me salvaste un montón de dolores de cabeza, estoy seguro! – user17753