Avoid converting spaces into plus signs in the code's content.

The urlencode() function, which was used here, converts spaces into + signs, which the decoder at the other end apparently doesn't decode back into spaces.

Additionally, calling urlencode() (or rawurlencode() which would work better here) leads to double encoding, as the router->generate() method apparently encodes the parameters automatically (at least it did in all of my tests). Hence, simply leaving out the manual encoding step gets us a valid URL that isn't double-encoded, and allows spaces to survive to the controller (and on into the QR code).