Ich möchte ein Widget schreiben, dass mir einen LDAP Server anfragt und gemäss der Eingabe von Namen oder Telefonnummer den oder die vorhandenen Personendaten ausgibt.
Mein erstes Problem ist allerdings, dass der LDAP Server die Daten im mime:base64 Format gespeichert hat und ausgibt.
Wie bringe ich dies nun am effizientesten javascript bei, dass es die Sonderzeichen richtig anzeigt?
Habe leider keinen Wert für charset gefunden, der der Codierung mimie:base64 entspricht.
Das ganze muss wohl oder übel decodiert werden. Base64 repräsentiert ein Zeichen mit jeweils 6 bit und es gibt eh nur 64 Zeichen, oder 65 wenn man das “=” dazunimmt, aber dann passt ja der Name nicht mehr. Auf jeden Fall wird das folgendermassen gemacht:
00: function b64t2d(t) {
01: var d=[]; var i=0;
02: // zur decodierung die Umbrueche killen
03: t=t.replace(/n|r/g,""); t=t.replace(/=/g,"");
04: while (i<t.length)
05: {
06: d[d.length] = (f64[t.charAt(i)]<<2>>4);
07: d[d.length] = (((f64[t.charAt(i+1)]&15;)<<4>>2));
08: d[d.length] = (((f64[t.charAt(i+2)]&3)<<6) | (f64[t.charAt(i+3)]));
09: i+=4;
10: }
11: if (t.length%4 == 2)
12: d = d.slice(0, d.length-2);
13: if (t.length%4 == 3)
14: d = d.slice(0, d.length-1);
15: return d;
16: }
Encodieren geht auch:
00: function encode_base64(d) {
01: var r=[]; var i=0; var dl=d.length;
02: // Padding vorbereiten
03: if ((dl%3) == 1) {
04: d[d.length] = 0; d[d.length] = 0;}
05: if ((dl%3) == 2)
06: d[d.length] = 0;
07: // Konvertieren
08: while (i<d.length)
09: {
10: r[r.length] = b64[d[i]>>2];
11: r[r.length] = b64[((d[i]&3)<<4>>4)];
12: r[r.length] = b64[((d[i+1]&15;)<<2>>6)];
13: r[r.length] = b64[d[i+2]&63;];
14: if ((i%57)==54)
15: r[r.length] = "n";
16: i+=3;
17: }
18: // padding abschließen
19: if ((dl%3) == 1)
20: r[r.length-1] = r[r.length-2] = "=";
21: if ((dl%3) == 2)
22: r[r.length-1] = "=";
23: // Array in text zusammenführen
24: var t=r.join("");
25: return t;
26: }
So sollte das funtzen.
Anmelden um neue Antworten zu verfassen
Allegra Leser! Nur angemeldete Nutzer können bei diesem Beitrag Antworten hinterlassen. Jetzt kostenlos registrieren oder mit bestehendem Benutzerprofil anmelden.
Ab CHF 5.– im Monat
👉🏼 Wir benötigen deine Unterstützung! Unterstütze macprime mit einem freiwilligen Gönner-Abo und mache die Zukunft unseres unabhängigen Apple-Mediums aus der Schweiz mit möglich.
macprime unterstützen
macprime ForumJavascript und mime64
VonAntwort von tota
Unsere Sponsoren
Apps with love entwickelt digitale Produkte, die das Leben vereinfachen.
Dich als Sponsor präsentieren und macprime mit möglich machen.
hirnstroem
Anmelden um neue Antworten zu verfassen
Allegra Leser! Nur angemeldete Nutzer können bei diesem Beitrag Antworten hinterlassen. Jetzt kostenlos registrieren oder mit bestehendem Benutzerprofil anmelden.