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 : Sélectionner tout - Visualiser dans une fenêtre à part
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à :-))