Foros del Web » Programación para mayores de 30 ;) » Java »

invocar función del api de windows

Estas en el tema de invocar función del api de windows en el foro de Java en Foros del Web. Hola!! en mi intento fallido por encontrar una función java para convertir un string de ANSI a OEM, he leido que alguien había conseguido hacer ...
  #1 (permalink)  
Antiguo 11/08/2010, 07:07
 
Fecha de Ingreso: octubre-2008
Ubicación: Plasencia
Mensajes: 109
Antigüedad: 15 años, 6 meses
Puntos: 6
invocar función del api de windows

Hola!!
en mi intento fallido por encontrar una función java para convertir un string de ANSI a OEM, he leido que alguien había conseguido hacer esto mediante la función AnsiToOem del api de windows, el problema es que no sé cómo ejecutar funciones del api de windows desde java. Les agradecería mucho si pudieran ayudarme.

Un saludo.
  #2 (permalink)  
Antiguo 11/08/2010, 12:38
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: invocar función del api de windows

Hola,

La API de Java tiene soporte para manejar diferentes composiciones de tablas de caracteres. Posiblemente puedas usar un Stream de entrada con el codepage ANSI y un Stream de salida con el codepage OEM. Sino posiblemente puedas usar el package java.nio.charset que provee Decoder y Encoder a a diferentes tablas de caracteres.

http://www.rgagnon.com/javadetails/java-0524.html

Tienes que recordar que un String en Java siempre está codificado en UTF. Así que para manejar otras tablas de caracteres hay que usar un array de bytes. No puedes crear un java.lang.String en formato ANSI, ya que internamente solo se maneja UTF, pero si puedes guardarlo en un array de bytes y convertirlo a otro array de bytes en otro charset y guardarlo en un archivo, enviarlo por un socket, etc.

Saludos,
  #3 (permalink)  
Antiguo 12/08/2010, 03:54
 
Fecha de Ingreso: octubre-2008
Ubicación: Plasencia
Mensajes: 109
Antigüedad: 15 años, 6 meses
Puntos: 6
Respuesta: invocar función del api de windows

Muchas gracias HackmanC!!
fue la solución al problema
A continuación muestro como quedó la cosa por si le sirve de ayuda a alguien más:
Código PHP:
Ver original
  1. // Se trata de un applet
  2.     public void init(){
  3.         port = getParameter("port");
  4.         if(port==null || port=="")
  5.             port="LPT1";
  6.         try{
  7.             if(port.startsWith("LPT") || port.startsWith("COM"))
  8.                 port = port+":";
  9.             fos = new FileOutputStream(port);
  10.             bw = new BufferedWriter(new OutputStreamWriter(fos,"Cp850"));
  11.         }  
  12.         catch(Exception e){
  13.             System.out.println("Error: "+e.getMessage());
  14.         }
  15.     }
  16.         // Este metodo recibe un string utf y escribe codificado en Oem
  17.     public void printOemString(String msg){
  18.         try{
  19.             bw.write(msg);
  20.             bw.flush();
  21.         }
  22.         catch(Exception e){
  23.             System.out.println("Error: "+e.getMessage());
  24.         }      
  25.     }

Un saludo

Etiquetas: api, windows
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:19.