public static long[] encoder(String message) {
        message = message.toUpperCase(); // Tout en majuscules
        // On comble le texte à la fin pour arriver à une longueur
        // multiple de LONGUEUR_MORCEAU
        while (message.length() % LONGUEUR_MORCEAU != 0) {
            message += ' ';
        }
        // On alloue l'esapce pour recueillir l'équivalent numérique
        // de chacun des morceaux de texte de LONGUEUR_MORCEAU caractères
        long[] morceaux = new long[message.length() / LONGUEUR_MORCEAU];
        int k = 0;
        for (int i = 0; i < message.length(); i += LONGUEUR_MORCEAU) {
            String morceau = message.substring(i, i + LONGUEUR_MORCEAU);
            String strEnc = "";
            // On encode chaque caractère du morceau
            for (int j = 0; j < LONGUEUR_MORCEAU; j++) {
                char c = morceau.charAt(j);
                int valeur = 1 + c - 'A';
                if (c == ' ') {
                    valeur = 27;
                }
                // On vérifie que chaque caractère pouvait être encodé
                if (valeur < 1 || 27 < valeur) {
                    throw new IllegalArgumentException(
                            "Le texte contient des caractères non gérés "
                            + "par le système d'encodage");
                }
                String carEnc = "" + valeur;
                // On s'assure que chaque nombre a deux chiffres
                if (carEnc.length() < LONGUEUR_CODE_1_CAR) {
                    carEnc = '0' + carEnc;
                }
                strEnc += carEnc;
            }
            morceaux[k] = Long.parseLong(strEnc);
            k++;
        }
        return morceaux;
    }