123456789101112131415161718192021222324252627282930313233 |
- #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
|