|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 46 ![]() |
Bonsoir,
J'ai une petite question qui va peut-être amené à une grande réponse .. J'ai un JFormattedTextField qui reçoit via un JFileChooser le chemin d'accès d'un répertoire. Dans mon code, j'effectue un getText sur ce JFormattedTextField et crypte le String(de retour) avec AES. La fonction d'encryption d'AES utilise comme paramètre un Byte[] et retourne un Byte[], ainsi je suis obligé d'utiliser getBytes pour passer le String à la fonction d'encryption. Ensuite, je stocke ce Byte[](que je vais appeller ici cryptedPath) dans un String en faisant : String s = ""; for (int i = 0; i < cryptedPath.length; i++) s += (char)cryptedPath[i]; Et pour finir, j'enregistre la classe sérialisé qui contient ce string dans un fichier. Le soucis, c'est qu'en faisant tout ça, quand je veux rechargé la classe à partir du fichier les chemins d'accès qui contenaient des caractères accentués ne sont pas bien supportés. Quand je réaffiche ces chemins d'accès, les caractères accentués ne s'affichent pas correctement(ils sont remplacés par d'autres caractères bizarre). Je précise que je suis sur kubuntu. Je pense personnellement que c'est du à la fonction getBytes. Cette fonction renvoi un byte quand il s'agit d'un caractère normal et 2 bytes quand il s'agit d'un caractère accentué. Du coup, quand je caste mes bytes en char, il n'affiche rien de bon.. forcément. Et je n'ai pas d'idées sur comment résoudre ce problème. Si vous pouviez m'aider, ce serait vachement cool. Merci. Bien à vous, Moi. |
|
|
00
|
|
|
#2 | ||||||||||
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 46 ![]() |
J'ai oublié de vous mettre le code, je le fais de suite. J'ai enlevé ce qui n'était pas "utile".
Création du JFormattedTextField et du JFileChooser Code :
Code :
hChamp.setText(hChoix.getSelectedFile().getAbsolutePath()); Crypte s et stocke dans bCrypted Code :
byte[] bCrypted = aes.crypt(s.getBytes()); Code :
Code :
Code :
Code :
|
||||||||||
|
|
00
|
|
|
#3 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 46 ![]() |
Cela fait 2 jours que je suis dessus.
J'ai trouvé la réponse à mon problème par le plus grand des hasards. Enfin "hasards".. J'ai penché pour cette solution sans vraiment trop y croire. Donc si quelqu'un sait pourquoi ça fonctionne, je suis très très très intéressé par la réponse. Bien que je vois grosso modo pourquoi ça fonctionne. J'ai modifié Code :
byte[] bCrypted = aes.crypt(s.getBytes()); Code :
byte[] bCrypted = aes.crypt(s.getBytes("ISO-8859-1")); Code :
Code :
|
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com