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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Ñ y acentos en C#?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ñ y acentos en C#?  (Leído 39,509 veces)
sexto

Desconectado Desconectado

Mensajes: 200


Ver Perfil
Ñ y acentos en C#?
« en: 27 Enero 2011, 17:17 pm »

Estoy haciendo una especie de Notepad en C#. Un ejercicio que nos ha mandado el profesor para este fin de semana.

He hecho el diálogo para abrir un archivo (.txt) y me lo abre bien, pero no me saca ni la letra ñ ni los acentos.

El código que tengo para abrir el archivo es el siguiente:

Código:
FileStream Archivo = new FileStream(AbrirArchivo.FileName, FileMode.Open, FileAccess.Read);
byte[] Contenido;
Contenido = new byte[Archivo.Length];
Archivo.Read(Contenido, 0, (int)Archivo.Length);
textBox1.Text = new UTF8Encoding().GetString(Contenido);

Me imagino que el problema está en el UTF8, pero he probado con ASCII y con un par mas y no hay forma de que los saque.
¿Como lo puedo conseguir?

Muchas gracias


En línea

.mokk.

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Ñ y acentos en C#?
« Respuesta #1 en: 27 Enero 2011, 17:42 pm »

http://msdn.microsoft.com/es-es/library/x8xxf0x5%28VS.80%29.aspx
Nose si esto te sirva, pero por lo menos a mi si
System.Text.Enconding.Default


En línea

chubichequer

Desconectado Desconectado

Mensajes: 13



Ver Perfil
Re: Ñ y acentos en C#?
« Respuesta #2 en: 27 Enero 2011, 18:07 pm »

Sexto en efecto ese utf8 no acepta los acentos ni las ñ en ese caso al menos, si usas default estaras usando un tipo de coficicacion que no esta en la lista y es la windows 1251, esa es la codificacion estandar de windows, es muy similar al ascii 256 pero con algunas diferencias, asi que puedes usar default en vez de utf8 o bien puedes usar esa codificacion de esta manera.
Código:
Encoding encode = System.Text.Encoding.GetEncoding("1251");
En línea

sexto

Desconectado Desconectado

Mensajes: 200


Ver Perfil
Re: Ñ y acentos en C#?
« Respuesta #3 en: 27 Enero 2011, 18:26 pm »

He probado las dos formas pero nada...

Lo estoy poniendo bien?

Citar
            FileStream Archivo = new FileStream(AbrirArchivo.FileName, FileMode.Open, FileAccess.Read);
            Encoding encode = System.Text.Encoding.GetEncoding("1251");

            byte[] Contenido;
            Contenido = new byte[Archivo.Length];
            Archivo.Read(Contenido, 0, (int)Archivo.Length);
            textBox1.Text = new encode("1251").GetString(Contenido);

Acabamos de empezar con Visual C# y aun no lo tengo yo muy dominado el tema...
En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Ñ y acentos en C#?
« Respuesta #4 en: 27 Enero 2011, 20:58 pm »

No me le los codes de los encodings pero puedes usar "utf-8" por ejemplo. Pruebalo.
En línea

Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: Ñ y acentos en C#?
« Respuesta #5 en: 27 Enero 2011, 21:38 pm »

Podrias probar algo como (en C)
Código
  1. FILE *FP = fopen (filename, (a+));
  2. char byte;
  3.  
  4. while (!feof (FP))
  5. {
  6. byte = fgetc (FP)
  7. if ((int)byte = 164)
  8. printf ("%c", (char) 164);
  9. else
  10. putc (byte);
  11. }
  12.  

O algo asi. Hace tiempo que no uso fgetc asi que no se si los arg. están bien, pero mas o menos estaría correcta la idea...
Suerte!
Modf: Para los acentos es exactamente lo mismo
Remodf por si eso...:
La cosa es que leas un byte y si es una Ñ o demás, lo imprimas con su valor ASCII... Así me va a mi en C.
« Última modificación: 27 Enero 2011, 21:47 pm por Sagrini » En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
sexto

Desconectado Desconectado

Mensajes: 200


Ver Perfil
Re: Ñ y acentos en C#?
« Respuesta #6 en: 28 Enero 2011, 17:57 pm »

Con UTF8 ya probé y nada.

Lo que comentas de sustituir los carácteres por su código ASCII... no se me había ocurrido.
Ahora probaré.
En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Ñ y acentos en C#?
« Respuesta #7 en: 29 Enero 2011, 02:31 am »

Hola, creo que con poner System.Text.Encoding.Default se soluciona.

aca te paso un ejemplo que no funciona y me muestra los acentos mal y las "ñ" como caracteres no validos.

No Funciona:

Código
  1. Imports System.IO
  2.  
  3. Public Class Form1
  4.  
  5.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.        Dim vLector As New StreamReader("c:\a.txt")
  7.        Dim vTexto As String = vLector.ReadToEnd()
  8.        TextBox1.Text = vTexto
  9.        vLector.Close()
  10.    End Sub
  11. End Class

aca el que funciona:

Código
  1. Imports System.IO
  2.  
  3. Public Class Form1
  4.  
  5.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.        Dim vLector As New StreamReader("c:\a.txt", System.Text.Encoding.Default)
  7.        Dim vTexto As String = vLector.ReadToEnd()
  8.        TextBox1.Text = vTexto
  9.        vLector.Close()
  10.    End Sub
  11. End Class

en C#:

Código
  1. using System.IO;
  2.  
  3. public class Form1
  4. {
  5.  
  6. private void Form1_Load(System.Object sender, System.EventArgs e)
  7. {
  8. StreamReader vLector = new StreamReader("c:\\a.txt", System.Text.Encoding.Default);
  9. string vTexto = vLector.ReadToEnd();
  10. TextBox1.Text = vTexto;
  11. vLector.Close();
  12. }
  13. }

saludos.
En línea

callemanuel

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Ñ y acentos en C#?
« Respuesta #8 en: 15 Abril 2012, 06:06 am »

Hola me imagino que la respuesta es un poco tarde para tu tarea pero se que al igual que yo muchas personas leen esto todavia "ya que aparece en google" y les puede servir como respuesta a otras personas

RESPUESTA:

CUANDO GUARDEN EL .TXT DEL QUE VAN A LEER EN LA PARTE DE ABAJO DICE CODIFICACIÓN, EN ESTE PUNTO ELIGAN UTF-8 QUE ES LA QUE RECONOCE C# Y PROBLEMA SOLUCIONADO CON TÍLDES Y TOD
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
acentos en un bat
Scripting
sexto 4 25,351 Último mensaje 6 Agosto 2007, 11:59 am
por Meta
Acentos en bat
Scripting
carlosguay 4 5,363 Último mensaje 19 Noviembre 2009, 12:00 pm
por carlosguay
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines