Si votre email correspond à un compte, vous recevrez un lien de réinitialisation.
Bonjour,Je cherche à traduire le code suivant en Java :char base64[] > "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";putwchar(c){if (c == '+') {putchar('+');putchar('-');}else if (c < 0x80) {putchar(c);}else if (c < 0x10000) {putchar('+');putchar(base64[c>>10&63]);putchar(base64[c>>4&63]);putchar(base64[c<<2&63]);putchar('-');}else if (c < 0x110000) {c = 0xD7C0DC00 + (c >> 10 << 16 | c & 0x3FF);putchar('+');putchar(base64[c>>26&63]);putchar(base64[c>>20&63]);putchar(base64[c>>14&63]);putchar(base64[c>>8&63]);putchar(base64[c>>2&63]);putchar(base64[c<<4&63]);putchar('-');}}J'ai donc ecrit la methode suivante :public static String UTF7encode(String string) {char[] base64 ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".toCharArray();char[] input = string.toCharArray();CharBuffer buffer = CharBuffer.allocate(500);char[] output = new char[input.length];for (int i=0; i<input.length; i++) {char c = input[i];if (c == '+') {buffer.append('+');buffer.append('-');}else if (c < 0x80) {buffer.append(c);}else if (c < 0x10000) {buffer.append('+');buffer.append(base64[c>>10&63]);buffer.append(base64[c>>4&63]);buffer.append(base64[c<<2&63]);buffer.append('-');}else if (c < 0x110000) {c = 0xD7C0DC00 + (c >> 10 << 16 | c & 0x3FF);buffer.append('+');buffer.append(base64[c>>26&63]);buffer.append(base64[c>>20&63]);buffer.append(base64[c>>14&63]);buffer.append(base64[c>>8&63]);buffer.append(base64[c>>2&63]);buffer.append(base64[c<<4&63]);buffer.append('-');}Mais je bloque sur la ligne suivante :c = 0xD7C0DC00 + (c >> 10 << 16 | c & 0x3FF);(sachant que c est un char)Un petit coup de main ?Merci d'avance
Bonjour, Je cherche à traduire le code suivant en Java : char base64[] > "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; putwchar(c) { if (c == '+') { putchar('+'); putchar('-'); } else if (c < 0x80) { putchar(c); } else if (c < 0x10000) { putchar('+'); putchar(base64[c>>10&63]); putchar(base64[c>>4&63]); putchar(base64[c<<2&63]); putchar('-'); } else if (c < 0x110000) { c = 0xD7C0DC00 + (c >> 10 << 16 | c & 0x3FF); putchar('+'); putchar(base64[c>>26&63]); putchar(base64[c>>20&63]); putchar(base64[c>>14&63]); putchar(base64[c>>8&63]); putchar(base64[c>>2&63]); putchar(base64[c<<4&63]); putchar('-'); } } J'ai donc ecrit la methode suivante : public static String UTF7encode(String string) { char[] base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".toCharArray(); char[] input = string.toCharArray(); CharBuffer buffer = CharBuffer.allocate(500); char[] output = new char[input.length]; for (int i=0; i<input.length; i++) { char c = input[i]; if (c == '+') { buffer.append('+'); buffer.append('-'); } else if (c < 0x80) { buffer.append(c); } else if (c < 0x10000) { buffer.append('+'); buffer.append(base64[c>>10&63]); buffer.append(base64[c>>4&63]); buffer.append(base64[c<<2&63]); buffer.append('-'); } else if (c < 0x110000) { c = 0xD7C0DC00 + (c >> 10 << 16 | c & 0x3FF); buffer.append('+'); buffer.append(base64[c>>26&63]); buffer.append(base64[c>>20&63]); buffer.append(base64[c>>14&63]); buffer.append(base64[c>>8&63]); buffer.append(base64[c>>2&63]); buffer.append(base64[c<<4&63]); buffer.append('-'); } Mais je bloque sur la ligne suivante : c = 0xD7C0DC00 + (c >> 10 << 16 | c & 0x3FF); (sachant que c est un char) Un petit coup de main ? Merci d'avance