elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Simbolos raros Ñ o tildes o ¿ en richbox C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Simbolos raros Ñ o tildes o ¿ en richbox C#  (Leído 796 veces)
SrTrp

Desconectado Desconectado

Mensajes: 265


Script/C#


Ver Perfil
Simbolos raros Ñ o tildes o ¿ en richbox C#
« en: 15 Octubre 2018, 01:34 »

Tengo un problema que cuando cargo un archivo txt y y lo muestro en un richbox me muestran unos símbolos raros ya que unas palabras estan tildadas o con el signo ¿ de pregunta, hay alguna forma de solucionar esto?


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Simbolos raros Ñ o tildes o ¿ en richbox C#
« Respuesta #1 en: 15 Octubre 2018, 23:04 »

Tengo un problema que cuando cargo un archivo txt y y lo muestro en un richbox me muestran unos símbolos raros ya que unas palabras estan tildadas o con el signo ¿ de pregunta, hay alguna forma de solucionar esto?


La aparición de símbolos de interrogación siempre es un signo que evidencia un problema de decodificación de caracteres. Muestra cómo estás obteniendo el texto de ese archivo. Basicamente para solucionarlo debes comprobar/conocer la codificación de texto del archivo de texto y usar esa misma codificación en la (sobrecarga de la) función que estés utilizando para obtener el texto.

Saludos


« Última modificación: 15 Octubre 2018, 23:11 por Eleкtro » En línea


SrTrp

Desconectado Desconectado

Mensajes: 265


Script/C#


Ver Perfil
Re: Simbolos raros Ñ o tildes o ¿ en richbox C#
« Respuesta #2 en: 16 Octubre 2018, 05:54 »

Obtengo el archivo de texto así
Código
  1. string a = string.Empty;
  2.            OpenFileDialog o = new OpenFileDialog();
  3.            if (o.ShowDialog() == DialogResult.OK)
  4.            {
  5.                a = o.FileName;
  6.                StreamReader sr = new StreamReader(a);
  7.                string t = "";
  8.                ArrayList arr = new ArrayList();
  9.  
  10.                while (t != null)
  11.                {
  12.                    t = sr.ReadLine();
  13.                    if (t != null)
  14.                    {
  15.                        arr.Add(t);
  16.                    }
  17.                }
  18.                sr.Close();
  19. int rf = 0;
  20. foreach (string op in arr)
  21.                {
  22.                        arreglo[rf] = op;
  23.                        rf++;
  24.                }
  25.  
Luego al arreglo lo mando a otro arreglo de otra clase, y para imprimir el texto lo hago así:
Código
  1. Form3 hhh = new Form3 (this);
  2.                hhh .Show();
  3.                hhh .richTextBox1.Text = arreglo2[0];
  4.  
el archivo de texto tiene algo así:
Código:
¿Hola?
Esta es una oración
y así es como hago todo esto para obtener el texto como podría codificarlo.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Simbolos raros Ñ o tildes o ¿ en richbox C#
« Respuesta #3 en: 16 Octubre 2018, 06:42 »

Modifica tu código de la siguiente manera:

Código
  1. ...
  2. Encoding enc = System.Text.Encoding.TIPO_DE_CODIFICACIÓN;
  3. ...
  4. StreamReader sr = new StreamReader(a, enc);
  5. ...

Nota: cómo es lógico, debes asegurarte de especificar la misma codificación de texto que tenga ese archivo de texto, no puedes especificar cualquier codificación aleatoria por que entonces los caracteres se representarán mal (aunque no todos los caracteres, depende). Prueba con la codificación UTF8 al ser de la más común, y puesto que de seguro NO es la codificación System.Text.Encoding.Default (Windows-1252 por lo general si tienes Windows en Español), ya que esa es la codificación que se usa por defecto si no especificas arbitrariamente la codificación a usar, y ya has dejado claro que no te funciona bien esa codificación.

Pero déjame decirte una cosa, a menos que haya una razón en especial (educativa) por la que hayas decidido emplear una tediosa y tosca metodología ocupando 20 lineas, entonces te conviene borrar todo ese código y sencillamente realizar una llamada a la función System.IO.File.ReadLines:

Código
  1. IEnumerable<string> textLines = System.IO.File.ReadLines(ruta_de_archivo, codificación);



Código
  1. Luego al arreglo lo mando a otro arreglo de otra clase

Tienes dos clases, llamémosla clase "A" y clase "B", bien, pues a menos que exista un motivo suficientemente razonable, como por ejemplo deshechar/liberar la instancia de la clase "A", entonces no tiene mucho sentido crear un duplicado (o copiar, mejor dicho) un array de la clase "A" en la clase "B", puesto que el array ya es accesible por tu código de la clase "B" en la clase "A"... o al menos eso parece ser según lo que estás diciendo.

Además, si quieres "enviar" algo a otra clase, deberías envíarlo como argumento al constructor de dicha clase, ya sea este una clase de tipo Form, o de un tipo personalizado. Y en el caso de que la clase "B" no sea una clase instanciable, entonces no tiene sentido enviar/copiar nada puesto que como ya digo puedes acceder al objeto en la clase "A". No se me ocurre un escenario donde realmente sea necesario copiar los elementos de un array en esas circunstancias por lo poco que has descrito.

Saludos.
« Última modificación: 16 Octubre 2018, 08:21 por Eleкtro » En línea


SrTrp

Desconectado Desconectado

Mensajes: 265


Script/C#


Ver Perfil
Re: Simbolos raros Ñ o tildes o ¿ en richbox C#
« Respuesta #4 en: 24 Octubre 2018, 07:19 »

Intente ponerle la codificación pero sigue mostrando lo mismo en cuanto a lo de el IEnumerable hago las 20 lineas porque en el ciclo me la paso condicionando que si una linea empieza por ejemplo con "#" que haga algo distinto y así. :S
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Bajar automáticamente el scrollbar de un textbox o richbox
Programación Visual Basic
USUARIO_DE_SOFTWARE_LIBRE 2 3,015 Último mensaje 22 Enero 2007, 18:20
por USUARIO_DE_SOFTWARE_LIBRE
Simbolos raros al escribir en un TXT « 1 2 »
Programación Visual Basic
FaiF (A¥åHøRå) 12 2,371 Último mensaje 26 Mayo 2008, 02:56
por naderST
Tildes en C++
Programación C/C++
ZedGe 1 840 Último mensaje 2 Septiembre 2013, 09:13
por eferion
Qt no lee tildes ni Ñ's
Programación C/C++
meepo 1 780 Último mensaje 20 Julio 2017, 00:44
por meepo
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines