Convertir int a un caracter

03/05/2006 - 21:55 por normanr | Informe spam
al convertir un integer a string no se obtiene el caracter correspondiente a
la tabla ascii
Ejemplo:
(Char)(128) -> me retorna un caracter que no corresponde al ascii,
obtentengo el el caracter '?', que es el ascii -> 63.
Como hago para obtener el caracter real ('€' -> para el ascii 128 del caso
anterior)
Muchas gracias
Normanr

Preguntas similare

Leer las respuestas

#1 Hernando Gisinger
03/05/2006 - 22:12 | Informe spam
char no es ascii, es Unicode


"normanr" wrote in message
news:
al convertir un integer a string no se obtiene el caracter correspondiente


a
la tabla ascii
Ejemplo:
(Char)(128) -> me retorna un caracter que no corresponde al ascii,
obtentengo el el caracter '?', que es el ascii -> 63.
Como hago para obtener el caracter real ('?' -> para el ascii 128 del caso
anterior)
Muchas gracias
Normanr
Respuesta Responder a este mensaje
#2 Alberto Poblacion
03/05/2006 - 22:21 | Informe spam
"normanr" wrote in message
news:
al convertir un integer a string no se obtiene el caracter correspondiente
a
la tabla ascii
Ejemplo:
(Char)(128) -> me retorna un caracter que no corresponde al ascii,



Bien, vayamos por partes. La tabla ASCII se termina en el caracter 127,
con lo que el 128 nunca puede ser ASCII.

El tipo char en C# es un carácter Unicode, y mide 16 bits de anchura.

obtentengo el el caracter '?', que es el ascii -> 63.



No es que obtengas el '?', lo que ocurre es que cuando tratas de
visualizar un carácter que no reconoce en Unicode, lo muestra como '?'.

Como hago para obtener el caracter real ('?' -> para el ascii 128 del caso



En realidad, lo que quieres hacer es convertir de una determinada tabla
de codificación de caracteres en 8 bits, que NO es la codificación ASCII
sino otra distinta, al tipo char, que es Unicode. Para ello, se dispone de
varias funciones en el espacio de nombres System.Text. En System.Text hay
clases para hacer cosas como la siguiente:

using System.Text;
...
Encoding codificacion =
System.Text.Encoding.GetEncoding("Windows-1252");
byte[] bytes = new byte[]{128};
char[] caracteres = codificacion.GetChars(bytes);

Esto te convierte del juego de caracteres Windows-1252 a Char.
Lógicamente, el "Windows-1252" tendrás que cambiarlo por el juego de
caracteres que realmente estés utilizando, que no puede ser ascii si
contiene el carácter 128.

Si no estás usando Windows-1252, el otro juego más probable es el UTF-8,
que puedes conseguir con codificacion=System.Text.Encoding.UTF8;
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida