diff options
Diffstat (limited to 'Src/Wasabi/bfc/string/url.h')
-rw-r--r-- | Src/Wasabi/bfc/string/url.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Src/Wasabi/bfc/string/url.h b/Src/Wasabi/bfc/string/url.h new file mode 100644 index 00000000..49c72e80 --- /dev/null +++ b/Src/Wasabi/bfc/string/url.h @@ -0,0 +1,33 @@ +#ifndef _URL_H +#define _URL_H + +#include <bfc/common.h> +#include <bfc/string/StringW.h> + +//#define URLENCODE_NOTHING 1 // encode nothing (add some flags!), default is to start with everything +#define URLENCODE_EXCLUDEALPHANUM 2 // do not encode characters that are alphanumeric (a-z,0-1) or _ - and . +#define URLENCODE_EXCLUDESLASH 4 // don't encode '/' or ':' +//#define URLENCODE_EXCLUDEHTTPPREFIX 8 // don't encode "http://" +//#define URLENCODE_EXCLUDE_8BIT 16 // do not encode > 127 +#define URLENCODE_EXCLUDE_ABOVEEQ32 32 // do not encode >= 32 +//#define URLENCODE_ENCODESPACE 64 // force encoding space +//#define URLENCODE_ENCODEXML 128 // force encoding '>' and '<' + +#define URLENCODE_DEFAULT URLENCODE_EXCLUDEALPHANUM +//#define URLENCODE_FULLURL (URLENCODE_DEFAULT|URLENCODE_EXCLUDEHTTPPREFIX|URLENCODE_EXCLUDESLASH|URLENCODE_EXCLUDE_7BIT_ABOVEEQ32|URLENCODE_ENCODESPACE) + +class Url { +public: + static void encode(StringW &dest, int use_plus_for_space = FALSE, int encoding = URLENCODE_DEFAULT, int style=URLENCODE_STYLE_PERCENT); + static void encode(String &dest, int use_plus_for_space = FALSE, int encoding = URLENCODE_DEFAULT, int style=URLENCODE_STYLE_PERCENT); + static void decode(StringW &str, int use_plus_for_space = FALSE); + static void decode(wchar_t *str); // in place url decode + + enum { + URLENCODE_STYLE_PERCENT = 0, // %AB + URLENCODE_STYLE_ANDPOUND = 1, // « + URLENCODE_STYLE_ANDPOUNDX = 2, // « + }; +}; + +#endif |