1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
| import java.lang.StringBuilder;
import java.io.StringReader;
import java.io.IOException;
public class AccentManager {
public String forUrl (String _string){
StringBuilder _sBuild = null;
try{
StringReader _sRead = new StringReader(_string);
_sBuild = new StringBuilder();
char c = (char)_sRead.read();
while( c != -1){
_sBuild.append(convertAccent(c));
c = (char)_sRead.read();
}
_sRead.close();
}catch (IOException e) {e.printStackTrace();}
return _sBuild.toString();
}
public String wAndWoAccents (String _string){
StringBuilder _sBuild = null;
try{
StringReader _sRead = new StringReader(_string);
_sBuild = new StringBuilder();
char c = (char)_sRead.read();
while( c != -1){
_sBuild.append(removeAccent(c));
c = (char)_sRead.read();
}
_sRead.close();
}catch (IOException e) {e.printStackTrace();}
return _sBuild.toString();
}
private String convertAccent(char c) {
if (c == 'à') return "%E0";
if (c == 'á') return "%E1";
if (c == 'â') return "%E2";
if (c == 'ã') return "%E3";
if (c == 'ä') return "%E4";
if (c == 'å') return "%E5";
if (c == 'æ') return "%E6";
if (c == 'ç') return "%E7";
if (c == 'è') return "%E8";
if (c == 'é') return "%E9";
if (c == 'ê') return "%EA";
if (c == 'ë') return "%EB";
if (c == 'ì') return "%EC";
if (c == 'í') return "%ED";
if (c == 'î') return "%EE";
if (c == 'ï') return "%EF";
if (c == 'À') return "%C0";
if (c == 'Á') return "%C1";
if (c == 'Â') return "%C2";
if (c == 'Ã') return "%C3";
if (c == 'Ä') return "%C4";
if (c == 'Å') return "%C5";
if (c == 'Æ') return "%C6";
if (c == 'Ç') return "%C7";
if (c == 'È') return "%C8";
if (c == 'É') return "%C9";
if (c == 'Ê') return "%CA";
if (c == 'Ë') return "%CB";
if (c == 'Ì') return "%CC";
if (c == 'Í') return "%CD";
if (c == 'Î') return "%CE";
if (c == 'Ï') return "%CF";
return "" + c;
}
private String removeAccent(char c) {
if (c == 'à') return c+"|a";
if (c == 'á') return c+"|a";
if (c == 'â') return c+"|a";
if (c == 'ã') return c+"|a";
if (c == 'ä') return c+"|a";
if (c == 'å') return c+"|a";
if (c == 'æ') return c+"|(?:ae)";
if (c == 'ç') return c+"|c";
if (c == 'è') return c+"|e";
if (c == 'é') return c+"|e";
if (c == 'ê') return c+"|e";
if (c == 'ë') return c+"|e";
if (c == 'ì') return c+"|i";
if (c == 'í') return c+"|i";
if (c == 'î') return c+"|i";
if (c == 'ï') return c+"|i";
if (c == 'À') return c+"|A";
if (c == 'Á') return c+"|A";
if (c == 'Â') return c+"|A";
if (c == 'Ã') return c+"|A";
if (c == 'Ä') return c+"|A";
if (c == 'Å') return c+"|A";
if (c == 'Æ') return c+"|(?:AE)";
if (c == 'Ç') return c+"|C";
if (c == 'È') return c+"|E";
if (c == 'É') return c+"|E";
if (c == 'Ê') return c+"|E";
if (c == 'Ë') return c+"|E";
if (c == 'Ì') return c+"|I";
if (c == 'Í') return c+"|I";
if (c == 'Î') return c+"|I";
if (c == 'Ï') return c+"|I";
return "" + c;
}
} |
Partager