Inspired by this whatwg thread about fragment identifiers in data URIs where it was proposed to allow raw '#' in the URI's data to be treated as text instead of the start of a fragment identifier so authors don't have to percent-encode '#' as %23 (which I disagree that authors should be allowed to do that), I created this page to properly create text-based data URIs.
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.).