Hi,
Njein. JavaScript verarbeitet keine Zeichen, sondern Zwei-Bytes. Das heißt, JavaScript versagt (noch) bei Zeichen jenseits der BMP ab Codepoint U+10000.
D.h. es gibt keine Implementierung in JavaScript, die 100% kompatible zu base64_encde/base64_decode in PHP ist?
das Problem ist nicht base64, sondern deine Erzeugung desselben. Ich weiß nicht, wie du dabei vorgehst; aber um einen base64-String zu erzeugen, musst du das "Rohmaterial" byteweise durchgehen. AFAIK kann Javascript einen String aber nicht byteweise indizieren, sondern immer zeichenweise. Also wirst du z.B. charCodeAt() verwenden müssen, und wenn der Code an der aktuellen Zeichenposition größer als 0xFF ist, ihn nach der UTF-8-Codierungsregel in zwei, drei oder vier Bytes umformen.
Im umgekehrten Fall könnte dir fromCharCode() weiterhelfen.
Ein bisschen Rechnen und Bit-Schieberei bleibt dir aber vermutlich nicht erspart.
So long,
Martin
Time's an illusion. Lunchtime doubly so.
(Douglas Adams, "The Hitchhiker's Guide To The Galaxy")
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(