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 :
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) ?
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); }
Merci de m'avoir lu :-), toute aide est la bienvenue (même en pseudo code... surtout si mon prof passe par là :-))
Partager