remplacer les é,è... par le codage correspondant en HTML

remplacer les é,è... par le codage correspondant en HTML - Java - Programmation

Marsh Posté le 11-02-2003 à 14:25:53    

Salut,  
 
est-ce qu'il existe une classe en java avec une méthode qui permet de remplacer du texte comme "un texte accentué" par "un texte accentué " ?
 
merci

Reply

Marsh Posté le 11-02-2003 à 14:25:53   

Reply

Marsh Posté le 11-02-2003 à 14:56:23    

Pourquoi ? C'est plus simple de mettre le bon encodage dans le header du fichier simplement...

Reply

Marsh Posté le 11-02-2003 à 15:04:03    

non, j'ai besoin d'un truc qui me convertisse mon texte en "texte html".

Reply

Marsh Posté le 11-02-2003 à 15:07:39    

Ouais mais à quoi ça sert de convertir ces caractères ? Ça se faisait dans le temps, mais maintenant on met un <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> par exemple pour justement pouvoir mettre tous les caractères accentués directement dans le fichier.


Message édité par antp le 11-02-2003 à 15:08:04
Reply

Marsh Posté le 11-02-2003 à 16:54:19    

oui, c'est possible avec Java 1.4 et les expressions régulieres de la classe String (methode replaceAll())
 
sinon avec les versions précédentes de Java, il faut choper un module qui fait les expressions regulieres (fait une recherche sur Jakarta, tu vas trouver ton bonheur)

Reply

Marsh Posté le 11-02-2003 à 17:11:01    

Le plus simple et le plus général, c'est de boucler sur l'ensemble de la chaîne de caractères et de remplacer tout caractère de code supérieur à 128 par l'entité correspondante.
 
edit> Voici le code :

Code :
  1. static String replaceNonAsciiChars(String str) {
  2.   StringBuffer  buffer = null;
  3.   for (int index = str.length(); index >= 0; --index) {
  4.     int  charCode = (int) str.charAt(index);
  5.     if (charCode & 0xFF80 != 0) {
  6.       if (buffer == null) {
  7.         buffer = new StringBuffer(str);
  8.       }
  9.       buffer.replace(index, index + 1,
  10.                      "&#" + Integer.toString(charCode) + ';');
  11.     }
  12.   }
  13.   return ((buffer == null) ? str : buffer.toString());
  14. }


Je ne l'ai pas compilé, mais cela devrait fonctionner. En tout cas, la logique de ce bout de code, je l'ai déjà écrite des dizaines de fois en Java, alors elle est éprouvée !  ;)


Message édité par BifaceMcLeOD le 11-02-2003 à 17:18:55
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed