Base64 weirdness

Richard Gaskin ambassador at
Sat Oct 29 11:00:17 EDT 2011

Maarten Koopmans wrote:

> Sorry for the cross-post from the forum, but this (silly) thing is
> becoming a blocker.
> A (to me) subtle question, which has to do with the base64 encoding. A
> base 64 encoded binary needs to be a multiple of 4. It' what all other
> implementation seem to do as well (tested Scala (JVM) and REBOL (C
> underneath)).
> But if I test with a standalone file like this:
> put "/Users/maartenkoopmans/Desktop/pw.jpg" into tFilename
> put base64encode(url("binfile:" & tFilename)) into tImage
> answer "file read and converted"
> answer the length of tImage
> I consistently get 7758 as length in Livecode, and 7652 in other
> implementaions (REBOL, Scala). The LC form has two bytes to much to be
> multiple of 4, and way more than the others, which are multiples of
> fours. So how do you get your data back then to display the image in a
> different environment (say, as webserver....)?
> Any thoughts appreciated...

What others wrote about line endings is likely the explanation.

But since base64 implementation should ignore line endings, how is this 
a blocker for you?  What software is not unencoding those correctly?

  Richard Gaskin
  Fourth World
  LiveCode training and consulting:
  Webzine for LiveCode developers:
  LiveCode Journal blog:

More information about the Use-livecode mailing list