Conversion Ansi.
Résolu/Fermé
Kenny19
Messages postés
5
Date d'inscription
mercredi 8 mai 2013
Statut
Membre
Dernière intervention
15 décembre 2013
-
31 mai 2013 à 13:05
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 31 mai 2013 à 19:29
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 31 mai 2013 à 19:29
A voir également:
- Conversion Ansi.
- Conversion monnaie - Télécharger - Banque & Budget
- Conversion ascii - Guide
- Conversion majuscule minuscule - Guide
- Echelle 1/1250 conversion - Forum Graphisme
- Conversion mb en go ✓ - Forum Mail
1 réponse
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
Modifié par KX le 31/05/2013 à 18:58
Modifié par KX le 31/05/2013 à 18:58
Si tu veux lire ton fichier texte (ce qui n'a pas énormément d'intérêt si c'est crypté) il va falloir utiliser des caractères lisibles. Or l'ANSI comporte un certain nombre de caractères non affichables ou qui changent d'un système d'exploitation à l'autre (par exemple les accents)
Ce qu'il faudrait faire c'est utiliser uniquement des caractères communs à (presque) tous les encodages, c'est à dire les chiffres et les lettres sans accent (minuscule et/ou majuscule)
Après, ça dépend comment tu fais ton "cryptage", mais en général on est amené à faire des calculs sur des valeurs entières très grandes et donc passer par la classe BigInteger. Celle-ci dispose notamment de méthodes qui permettent d'écrire un entier en base "quelconque", au maximum en base 36 (10 chiffres et 26 lettres minuscules), ce qui permet de résoudre le problème facilement.
Ce qu'il faudrait faire c'est utiliser uniquement des caractères communs à (presque) tous les encodages, c'est à dire les chiffres et les lettres sans accent (minuscule et/ou majuscule)
Après, ça dépend comment tu fais ton "cryptage", mais en général on est amené à faire des calculs sur des valeurs entières très grandes et donc passer par la classe BigInteger. Celle-ci dispose notamment de méthodes qui permettent d'écrire un entier en base "quelconque", au maximum en base 36 (10 chiffres et 26 lettres minuscules), ce qui permet de résoudre le problème facilement.
BigInteger n = BigInteger.valueOf(1234567890); System.out.println(n); String s = n.toString(36); System.out.println(s); // kf12oi BigInteger m = new BigInteger(s,36); System.out.println(m);La confiance n'exclut pas le contrôle
31 mai 2013 à 19:24
Sinon au pire des cas j'ajoute une petite soustraction de 127 histoire de ne pas utilisé l'ascii étendue et je le retrouve dans mon programme en rajoutant ce 127 ^^
Merci de ton aide , je vais essayé de me débrouiller ^^
31 mai 2013 à 19:29
https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html