Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023
-
14 juin 2007 à 18:11
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023
-
15 juin 2007 à 10:01
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 15 juin 2007 à 10:01
Salut,
pour lui limite tu t'en fou il reste portable, mais si tu veux unifier faut faire : '\u005C\u0027', il faut l'echaper avec \ mais au format unicode ^^
futer
Messages postés1Date d'inscriptionjeudi 14 juin 2007StatutMembreDernière intervention15 juin 2007 15 juin 2007 à 09:23
Merci pour cette proposition. J'ai utilisé l'utilitaire charmap de Windows
Par contre, le caractère quote ne peut être remplacé par son littéral unicode car le compilateur ne s'y retrouve plus !!!
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 14 juin 2007 à 18:11
Salut,
tu devrais changer les char de ton tableau 'characters' avec les valeurs unicode sinon si tu passes le source d'un windows vers un linux et réciproquement ton tableau sera vite pourrir à cause de la différence d'encodage... et sera inutilisable.
15 juin 2007 à 10:01
pour lui limite tu t'en fou il reste portable, mais si tu veux unifier faut faire : '\u005C\u0027', il faut l'echaper avec \ mais au format unicode ^^
15 juin 2007 à 09:23
Par contre, le caractère quote ne peut être remplacé par son littéral unicode car le compilateur ne s'y retrouve plus !!!
import java.util.*;
public class HTMLEncoder {
private static Map mapChar2HTMLEntity;
private final static char [] characters = {
'\u00DC', '\u00C4', '\u00D6', '\u00CB', '\u00C7', '\u00C6', '\u00C5', '\u00D8',
'\u00FC', '\u00E4', '\u00F6', '\u00EB', '\u00E7', '\u00E5', '\u00F8', '\u0060', '\u00E0', '\u00E8', '\u00EC', '\u00F2', '\u00F9',
'\u0026', '\u00DF','\u00A0', '\u003E', '\u003C',
'\u009A', '\u00A2', '\u00A3', '\u00AB','\u00BB','\u00AE','\u00AD','\'',
'\u00E1','\u00FA','\u00F3','\u00E9','\u00ED','\u00F1','\u00A7','\u00E8','\u00EE','\u00F4','\u00E2','\u00FB','\u00EA',
'\u00E6','\u00A1','\u0022','\u00AA','\u00D7','\u00B0','\u20AC','\u007C','\u00B5','\u00BA','\u00F7','\u00B2','\u00B3',
'\u00B1'
};
private final static String[] entities = {
"Ü","Ä","Ö","Ë","Ç","Æ","Å","Ø",
"ü","ä","ö","ë","ç","å","ø","`","à","è","ì","ò","ù",
"&","ß"," ",">","<",
"©","¢","£","«","»","®","·","´",
"á","ú","ó","é","í","ñ","§","è","î","ô","â","û","ê",
"æ","¡",""","ª","×","°","€","¦","µ","º","÷","²","³",
"±"
};
public HTMLEncoder() {
mapChar2HTMLEntity= new HashMap();
int longueur = characters.length;
for (int i = 0; i < longueur; i++) mapChar2HTMLEntity.put(new Character(characters[i]), entities[i]);
}
public String encode(String s) {
int longueur = s.length();
final StringBuffer sb = new StringBuffer(longueur * 2);
char ch;
for (int i =0; i < longueur ; ++i) {
ch = s.charAt(i);
if ((ch >= 63 && ch <= 90) || (ch >= 97 && ch <= 122)) sb.append(ch);
else {
String ss = (String)mapChar2HTMLEntity.get(new Character(ch));
if(ss==null) sb.append(ch); else sb.append(ss);
}
}
return sb.toString();
}
}
14 juin 2007 à 18:11
tu devrais changer les char de ton tableau 'characters' avec les valeurs unicode sinon si tu passes le source d'un windows vers un linux et réciproquement ton tableau sera vite pourrir à cause de la différence d'encodage... et sera inutilisable.
tu trouveras sur le lien ci-dessous, un applet contenant les codes unicode que tu utilises :
http://mindprod.com/applets/unicode.html