// curl_easy_escape - URL encodes the given string func (curl *CURL) Escape(url string) string { p := curl.handle oldUrl := C.CString(url) defer C.free(unsafe.Pointer(oldUrl)) newUrl := C.curl_easy_escape(p, oldUrl, 0) defer C.curl_free(unsafe.Pointer(newUrl)) return C.GoString(newUrl) }
// curl_easy_unescape - URL decodes the given string func (curl *CURL) Unescape(url string) string { p := curl.handle oldUrl := C.CString(url) outlength := C.int(0) defer C.free(unsafe.Pointer(oldUrl)) // If outlength is non-NULL, the function will write the length of the // returned string in the integer it points to. This allows an // escaped string containing %00 to still get used properly after unescaping. newUrl := C.curl_easy_unescape(p, oldUrl, 0, &outlength) defer C.curl_free(unsafe.Pointer(newUrl)) return C.GoStringN(newUrl, outlength) }