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

[SOLUCIONADO] Problema al entrar a carpetas con acentos [Linux-Java]

Estas en el tema de Problema al entrar a carpetas con acentos [Linux-Java] en el foro de Java en Foros del Web. Buenos dias. Estoy desarrollando un programa que corre de forma demonizada utilizando wrapper, este programa hace lo siguiente: -Toma una ruta almacenada en BD -Busca ...
  #1 (permalink)  
Antiguo 21/08/2015, 09:48
 
Fecha de Ingreso: octubre-2014
Mensajes: 29
Antigüedad: 9 años, 5 meses
Puntos: 1
Problema al entrar a carpetas con acentos [Linux-Java]

Buenos dias.

Estoy desarrollando un programa que corre de forma demonizada utilizando wrapper, este programa hace lo siguiente:
-Toma una ruta almacenada en BD
-Busca los archivos que se encuentran en esa ruta
-Almacena esos archivos en BD.

El problema es que la ruta contiene acentos, por ejemplo: /carpeta/árbol/
La ruta la obtengo bien de BD, esto lo se porque recorri la ruta obtenida obteniendo el codepoint de cada letra y en la á obtuve un 225, lo cual es correcto.
pero cuando creo un File carpeta = new File("/carpeta/árbol/"); y despues un carpeta.exist(); me dice que no existe.

Hice otra prueba, que es crear el File solo de la primer carpeta File carpeta = new File("/carpeta/"); y despues listar sus hijos, y resulta que si encuentra la carpeta, solo que no con acento, la muestra de la siguiente manera: "/carpeta/��rbol/", donde el codepoint de los signos � es 65533.

Tengo la sospecha que es alguna configuracion del sistema operativo, ya que en consola, al hacer un ls estando en "/carpeta/" el resultado es parecido "��rbol", sin embargo, no tengo permitido hacer cambios de ningun tipo en el equipo.

Hay alguna configuracion el el Wrapper que me ayude? ya que hay otro servicio demonisado que hace una tarea parecida y el no tiene problemas.

Agradesco su atencion y pronta respuesta.

Saludos.
  #2 (permalink)  
Antiguo 24/08/2015, 12:25
Avatar de Tipdar  
Fecha de Ingreso: octubre-2005
Ubicación: Aquí y allá.
Mensajes: 323
Antigüedad: 18 años, 6 meses
Puntos: 7
Respuesta: Problema al entrar a carpetas con acentos [Linux-Java]

Solo probando... mira a ver si con \u00E1rbol en lugar de árbol en tu cadena funciona.
__________________
El último TipdaR
  #3 (permalink)  
Antiguo 24/08/2015, 16:19
 
Fecha de Ingreso: octubre-2014
Mensajes: 29
Antigüedad: 9 años, 5 meses
Puntos: 1
Respuesta: Problema al entrar a carpetas con acentos [Linux-Java]

Muchas gracias por tu respuesta Tipdar.

El voy a probar, pero el problema es que como la ruta la obtengo de base de datos tego que reemplazar todos los caracteres especiales por su correcpondiente codigo.

Saludos.
  #4 (permalink)  
Antiguo 25/08/2015, 00:45
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Respuesta: Problema al entrar a carpetas con acentos [Linux-Java]

Seguro que encuentras la manera de hacerlo por medio de updates en la base de datos. Que entre SQL y PL/SQL (Para Oracle, Transact SQL para SQL Server, etc) se puede hacer de todo. O si no, ya que sabes programar JAVA seguro que te puedes sacar en menos 50 líneas un código que te actualice tu base de datos y te cambie los acentos por sus códigos.

Última edición por Kritik; 25/08/2015 a las 00:57
  #5 (permalink)  
Antiguo 25/08/2015, 09:46
 
Fecha de Ingreso: octubre-2014
Mensajes: 29
Antigüedad: 9 años, 5 meses
Puntos: 1
Respuesta: Problema al entrar a carpetas con acentos [Linux-Java]

Muchas gracias a Tipdar y a Kritik por su respuesta.

Despues de batallar mucho encontre la solucion, el problema no estaba ni en mi codigo ni en la base de datos, sino en el idioma del sistema, al ejecutar "echo $LANG" en consola, no me aparecia nada, entonces lo primero que hace mi codigo es colocarlo en UTF-8 con "export LC_ALL=es_MX.UTF-8" y de esta forma todo funciono como esperaba.

Muchas gracias!!!!

Etiquetas: acentos, carpetas, programa
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 15:46.