Open IT Experts for Enterprise

Zylk empresa de desarrollo de ecommerce

normalizando nombres en java

Gustavo Fernández
Gustavo Fernández

Un problema típico en los programas que gestionan
uploads/downloads de ficheros es el nombre del
fichero que los usuarios dan a los ficheros. Es decir, existe la no
muy buena costumbre, entre los usuarios de windows y mac
principalmente
, de usar nombres de ficheros con tíldes
espacios en blanco etc… que suele originar
problemas a la hora de almacenarlos en los filesystems ya que la
codificación en bytes de algunos caracteres en los distintos encodings
no es la misma. Es decir no se codifica de la misma manera en
UTF-8 que en ISO-8859-1. Por tanto suele ser una
buena práctica normalizar esos nombres sustituyendo las tildes
por sus equivalente sin tilde y las ñ por n
. Además también
es una buena idea evitar los espacios en blanco para que las
urls no tengan la pinta de %20% etc… En java para
realizar esa tarea se puede hacer uso de una expresión regular y de un
Normalizador de texto. El código es el siguiente:

  private static String normalizador(String str)
 
{
    return Normalizer.normalize(str,
Normalizer.Form.NFD).replaceAll("\p{InCombiningDiacriticalMarks}+",
"").replaceAll(" ", "+");
   }

Que dado un string como "camión con
Ñ"
devuelve camion+con+n. Este método
es preferible al tipico
replaceAll("é","e").replaceAll("á","a")
etc.. ya que además de servir para otros idiomas evita la problematica
de que en el código fuente é está codificada en un encódigo concreto
que puede hace que el replaceAll no haga nada.

Dejo el link de un artículo interesante relacionado con el tema, http://www.rgagnon.com/javadetails/java-0456.html

Si te ha parecido interesante comparte este post en RRS

Facebook
LinkedIn
Telegram
Email

Leer más sobre temas relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *