bonjour , je n'arrive pas à lire une String unicode utf 16.
voici l'exemple de la String :
0043006F00750063006F0075000A004500E900E020AC000A0024000AD83DDE04
Merci de votre aide.
bonjour , je n'arrive pas à lire une String unicode utf 16.
voici l'exemple de la String :
0043006F00750063006F0075000A004500E900E020AC000A0024000AD83DDE04
Merci de votre aide.
Hello,
Il faut utiliser le constructeur de String qui prend des octets et un charset en paramètre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 // En supposant que tu as un tableau bytes[] bytes comme ça : byte[] bytes = { (byte) 0x00, (byte) 0x43, (byte) 0x00, (byte) 0x6F, (byte) 0x00, (byte) 0x75, (byte) 0x00, (byte) 0x63, (byte) 0x00, (byte) 0x6F, (byte) 0x00, (byte) 0x75, (byte) 0x00, (byte) 0x0A, (byte) 0x00, (byte) 0x45, (byte) 0x00, (byte) 0xE9, (byte) 0x00, (byte) 0xE0, (byte) 0x20, (byte) 0xAC, (byte) 0x00, (byte) 0x0A, (byte) 0x00, (byte) 0x24, (byte) 0x00, (byte) 0x0A, (byte) 0xD8, (byte) 0x3D, (byte) 0xDE, (byte) 0x04 }; // tu te sers des octets comme ça : String string = new String(bytes, StandardCharsets.UTF_16BE); System.out.println(string);
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
t'as interprété les les String de 4 caractères dans ton tableau de byte ?
Ta question n'a pas beaucoup de sens. En tout cas je n'ai rien interprété de 4 caractères.
Tu nous as montré une séquence hexadécimale sans nous dire sous quelle forme tu l'obtenais. Une séquence hexadécimale étant essentiellement une séquence d'octets, où chaque octet est représenté par 2 caractères, je l'ai prise par 2 caractères que j'ai mis dans un tableau byte[].
Tu peux vérifier, ce sont les mêmes.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
ok, j'ai compris cela juste après . merci beaucoup .
je viens de trouver un autre code qui permet de ne pas faire la table mais de la calculer directement via Hex.decodeHex(text.toCharArray())
j'ai le même résultat que ce que tu m'as donné.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 String text="0043006F00750063006F0075000A004500E900E020AC000A0024000AD83DDE04"; byte[] bytes = Hex.decodeHex(text.toCharArray()); String string = new String(bytes, "UTF-16"); System.out.println( string);
Merci encore pour ton aide.
Parfait.
Pour information une prochaine fois, si tu nous avais dit dès le début que tu avais une variable String text="0043006F00750063006F0075000A004500E900E020AC000A0024000AD83DDE04", nous aurions pu te dire comment s'en servir.
Là tu nous as juste montré de l'hexadécimal qui sort de nulle part, j'ai dû improviser.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager