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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  (Ayuda) Inconcluencias entre código ASCII y UNICODE
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (Ayuda) Inconcluencias entre código ASCII y UNICODE  (Leído 6,329 veces)
Seyro97

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
(Ayuda) Inconcluencias entre código ASCII y UNICODE
« en: 17 Marzo 2015, 16:01 pm »

Hola, muy buenas. En primer lugar, a partir de ahora se supondrá que uso Java.

Estaba haciendo un ejercicio que decía así:

  • Lee un número por teclado y muestra por consola, el carácter al que pertenece en la tabla ASCII. Por ejemplo: si introduzco un 97, me muestre una a.
  • Modifica el ejercicio anterior, para que en lugar de pedir un número, pida un carácter (char) y muestre su código en la tabla ASCII.

Bien. He hecho el programa y todo va bien, pero con un problema. Cuando paso, por ejemplo, el carácter 'á' a número me da como resultado 160, el que le corresponde en ASCII. El problema es que a la hora de mostrar dicho carácter por pantalla se convierte a  UTF-8 (he hecho varias pruebas, y confirmo lo que digo.). Sabiendo que la consola trabaja con el código ASCII (Windows), y que el valor numérico de dicho carácter corresponde al código ASCII, ¿Por qué se muestra como UTF-8?

El código:

Código
  1. import java.util.Scanner;
  2.  
  3. public class Main {
  4. public static void main(String[] args) {
  5. Scanner Reader = new Scanner(System.in);
  6. char Character = ' ';
  7.  
  8. System.out.print("Introduzca un caracter cualquiera: ");
  9. Character = Reader.next().charAt(0);
  10.  
  11. System.out.println("El valor numérico de " + Character + " es " + ((int)Character));
  12. }
  13. }


MUCHAS GRACIAS POR ATENDERME


« Última modificación: 17 Marzo 2015, 16:12 pm por Seyro97 » En línea

Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: (Ayuda) Inconcluencias entre código ASCII y UNICODE
« Respuesta #1 en: 17 Marzo 2015, 17:58 pm »

Tendrías que crear un array con todos los caracteres extendidos. Ejemplo:

Código
  1. import java.util.Scanner;
  2.  
  3. public class Main {
  4.    public static final char[] EXTENDED = { 0x00C7, 0x00FC, 0x00E9, 0x00E2,
  5.            0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF,
  6.            0x00EE, 0x00EC, 0x00C4, 0x00C5, 0x00C9, 0x00E6, 0x00C6, 0x00F4,
  7.            0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00A2,
  8.            0x00A3, 0x00A5, 0x20A7, 0x0192, 0x00E1, 0x00ED, 0x00F3, 0x00FA,
  9.            0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD,
  10.            0x00BC, 0x00A1, 0x00AB, 0x00BB, 0x2591, 0x2592, 0x2593, 0x2502,
  11.            0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557,
  12.            0x255D, 0x255C, 0x255B, 0x2510, 0x2514, 0x2534, 0x252C, 0x251C,
  13.            0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566,
  14.            0x2560, 0x2550, 0x256C, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559,
  15.            0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588,
  16.            0x2584, 0x258C, 0x2590, 0x2580, 0x03B1, 0x00DF, 0x0393, 0x03C0,
  17.            0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4,
  18.            0x221E, 0x03C6, 0x03B5, 0x2229, 0x2261, 0x00B1, 0x2265, 0x2264,
  19.            0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A,
  20.            0x207F, 0x00B2, 0x25A0, 0x00A0 };
  21.  
  22.    public static final char getAsciiCharacter(int code) {
  23.        if (code >= 0x80 && code <= 0xFF) {
  24.            return EXTENDED[code - 0x7F];
  25.        }
  26.        return (char) code;
  27.    }
  28.  
  29.    public static final int getAsciiCode(char character) {
  30.        int code = (int) character;
  31.        for(short i=0; i < EXTENDED.length; i++) {
  32.            if(EXTENDED[i] == character)
  33.                code = 128 + i;
  34.        }
  35.        return code;
  36.    }
  37.  
  38.    public static final void printCharacter(int code) {
  39.        System.out.printf("%c%n", getAsciiCharacter(code));
  40.    }
  41.  
  42.    public static void main(String[] args) {
  43.        Scanner reader = new Scanner(System.in);
  44.  
  45.        System.out.print("Ingrese un carácter: ");
  46.        char character = reader.next().charAt(0);
  47.  
  48.        int asciiCode = getAsciiCode(character);
  49.  
  50.        System.out.println("El carácter es "+ character +" y su código ascii es: " + asciiCode);
  51.    }
  52.  
  53.  
  54. }


En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Seyro97

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
Re: (Ayuda) Inconcluencias entre código ASCII y UNICODE
« Respuesta #2 en: 17 Marzo 2015, 18:54 pm »

Eso es muy largo para un ejercicio :P
En línea

Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: (Ayuda) Inconcluencias entre código ASCII y UNICODE
« Respuesta #3 en: 17 Marzo 2015, 18:56 pm »

¿Muy largo? Jaja, en el mundo real esto es "muy pequeño". Pero es normal que se piense así cuando recién se está aprendiendo. Si no entendiste algo, házmelo saber para explicarte.
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Seyro97

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
Re: (Ayuda) Inconcluencias entre código ASCII y UNICODE
« Respuesta #4 en: 17 Marzo 2015, 19:05 pm »

No,muchas gracias :D Si que se que esto es corto, porque vengo de C++, pero pienso que para un ejercicio básico es muy largo
En línea

Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: (Ayuda) Inconcluencias entre código ASCII y UNICODE
« Respuesta #5 en: 17 Marzo 2015, 19:13 pm »

Pero esto no vendría a ser el ejercicio en si. Puede usarse como una clase utilitaria incluso la puedes exportar como JAR y en algún otro proyecto, solo importas el JAR y haces uso de la clase sin necesidad de volver a crearla. Así nacen las librerías  ;)
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Seyro97

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
Re: (Ayuda) Inconcluencias entre código ASCII y UNICODE
« Respuesta #6 en: 17 Marzo 2015, 19:19 pm »

Vale. Muchas gracias!
En línea

Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!
palsot

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: (Ayuda) Inconcluencias entre código ASCII y UNICODE
« Respuesta #7 en: 25 Febrero 2019, 02:43 am »

Hola!! me podrias ayudar por favor!! tu codigo me vino muy pero muy bien, solo una duda, porque no se imprimen los caracteres del 1 al 31? cuando me pide ingresar un caracter y pongo alguno que este en este intervalo me muestra un signo de interrogacion (?) y me pone que su codigo ascci es 63, del caracter 176 al 188 me pasa exactamente lo mismo y de ahi en adelante bueno.. algunos caracteres me arroja resultados correctos, otros no... pasaron años jaja pero agradeceria enormemente si pudoeras ayudarme.
gracias!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
unicode en el codigo fuente de vb?
Programación Visual Basic
Nakp 3 1,640 Último mensaje 2 Septiembre 2006, 18:51 pm
por Nakp
Como convertir Unicode a ascii
Programación Visual Basic
thecirujano 4 6,945 Último mensaje 8 Febrero 2011, 15:49 pm
por LeandroA
c++ necesito su ayuda, una dudo del codigo ascii
Programación C/C++
josehebu 2 2,910 Último mensaje 9 Enero 2013, 02:14 am
por zonahurbana
Duda con Ascii Unicode, Ansi
Ingeniería Inversa
.:UND3R:. 6 7,761 Último mensaje 10 Marzo 2014, 18:44 pm
por Gh057
UNICODE ASCII C/C++ [Save in File] Ayuda ?
Programación C/C++
Citrusl 5 3,107 Último mensaje 24 Noviembre 2014, 01:59 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines