Conversion 255 premiers caractères Unicode vers UTF-8
Bonjour à tous,
Je débute des cours en Java et j'ai un exercice qui me prends bien la tête... Je dois convertir les 255 premiers caractères Unicode vers UTF-8. De ce que je comprends Java fait de base de l'Unicode dans cette forme: (char)car = '\uxxxx' ou String str = "\\uxxxx".
Donc dans mon idée je fais un for (int i = 0; i<255; i++), j'incrémente un String et je le traduit en UTF-8 via la méthode "getBytes("UTF-8")" et de la possibilité de forcer le format lors de la création de l'objet String.
Donc j'ai pondu ça :
Code:
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
| String symbol = "\\u0000";
for (int i = 0; i<255; i++){
String hex = Integer.toHexString(i);
if(i< 9){
symbol = "\\u000"+hex;
}else if (i >10 && i <100){
symbol = "\\u00"+hex;
}else{
symbol = "\\u0"+hex;
}
char carResult = (char) Integer.parseInt(symbol.substring(2), 16 );
System.out.println("carResult: "+ carResult);
String string2convert = Character.toString((char) carResult);
byte[] convertUnicodeBytes = string2convert.getBytes();
byte[] convertUTF8Bytes2 = string2convert.getBytes("UTF-8");
String stringUTF8= new String(convertUTF8Bytes2, "UTF-8");
String stringUnicode = new String(convertUnicodeBytes, "UTF-8");
System.out.println("stringUTF8: "+ stringUTF8 +" stringUnicode: "+ stringUnicode);
} |
Outre le problème de l'addition des hexadécimaux qui ne fonctionne pas (des idées ?) est-ce la bonne manière de faire ? Et existe-t-il un moyen (ou pas) de faire ça en ayant juste des char et pas des String (avec du pur algo) ?
Merci de m'avoir lu :-), toute aide est la bienvenue (même en pseudo code... surtout si mon prof passe par là :-))