func EscapeString(s string) string {
	return Escape([]byte(s))
}
EscapeString is like Escape, but taking
a string as argument.
package dataurl
import (
	"bytes"
	"fmt"
	"io"
	"strings"
)
func Escape(data []byte) string {
	var buf = new(bytes.Buffer)
	for _, b := range data {
		switch {
		case isUnreserved(b):
			buf.WriteByte(b)
		default:
			fmt.Fprintf(buf, "%%%02X", b)
		}
	}
	return buf.String()
}