code: 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()
  }
docs: // Escape implements URL escaping, as defined in RFC 2397 (http://tools.ietf.org/html/rfc2397).
  // It differs a bit from net/url's QueryEscape and QueryUnescape, e.g how spaces are treated (+ instead of %20):
  //
  // Only ASCII chars are allowed. Reserved chars are escaped to their %xx form.
  // Unreserved chars are [a-z], [A-Z], [0-9], and -_.!~*\().