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 :
- static String replaceNonAsciiChars(String str) {
- StringBuffer buffer = null;
- for (int index = str.length(); index >= 0; --index) {
- int charCode = (int) str.charAt(index);
- if (charCode & 0xFF80 != 0) {
- if (buffer == null) {
- buffer = new StringBuffer(str);
- }
- buffer.replace(index, index + 1,
- "" + Integer.toString(charCode) + ';');
- }
- }
- return ((buffer == null) ? str : buffer.toString());
- }
|
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