#FridayDeploymentWin

Java : un équivalent à Iconv//TRANSLIT

Sun 19 June 2011 | Tips, -- (permalink)

Il y a deux ans j'avais publié un petit billet sur le nettoyage d'accents en PHP à l'aide d'Iconv. J'ai eu besoin de faire la même chose en Java récemment, seulement le mode //TRANSLIT n'existe pas.

Fort heureusement, une petite recherche m'a permis de trouver mon bonheur :

String decomposed = Normalizer.normalize(accented, Normalizer.Form.NFKD);
StringBuilder buf = new StringBuilder();
for (int idx = 0; idx < decomposed.length(); ++idx) {
  char ch = decomposed.charAt(idx);
  if (ch < 128)
    buf.append(ch);
}
String filtered = buf.toString();

En résumé, ce bout de code décompose les caractères accentués en suite de caractères simples (exemple : è donne e`) puis ne conserve que les caractères ASCII (code ASCII < 128).

Enjoy it !

comments powered by Disqus