The page automatically encodes '#' as %23 in the data so that it doesn't get treated as a fragment identifier. There's also a field to have a real fragment identifier at the end of the URI, which is useful for text/html data URIs to jump to a certain element on the page.
Testing with data URIs in Opera, I found a long time ago (and still true now) that a user can't type or paste very long of a data URI into Opera's address field without Opera clipping the data. I forget, but I think the limit is 32K. Other browsers support a lot longer of a URI. To workaround this in Opera, you have to window.open() the data URI or present it as a link to click on. Then, Opera will accept a longer URI. Opera gets really annoying with this, but Opera has always had 32k limits like these in various places (the command line, css until recently, the "To" field in Opera's built-in mail client etc.).