Home | History | Annotate | Download | only in base
      1 /*
      2  *  Copyright 2008 The WebRTC Project Authors. All rights reserved.
      3  *
      4  *  Use of this source code is governed by a BSD-style license
      5  *  that can be found in the LICENSE file in the root of the source
      6  *  tree. An additional intellectual property rights grant can be found
      7  *  in the file PATENTS.  All contributing project authors may
      8  *  be found in the AUTHORS file in the root of the source tree.
      9  */
     10 
     11 #ifndef _URLENCODE_H_
     12 #define _URLENCODE_H_
     13 
     14 #include <string>
     15 
     16 namespace rtc {
     17 
     18 // Decode all encoded characters. Also decode + as space.
     19 int UrlDecode(const char *source, char *dest);
     20 
     21 // Decode all encoded characters.
     22 int UrlDecodeWithoutEncodingSpaceAsPlus(const char *source, char *dest);
     23 
     24 // Encode all characters except alphas, numbers, and -_.!~*'()
     25 // Also encode space as +.
     26 int UrlEncode(const char *source, char *dest, unsigned max);
     27 
     28 // Encode all characters except alphas, numbers, and -_.!~*'()
     29 int UrlEncodeWithoutEncodingSpaceAsPlus(const char *source, char *dest,
     30                                         unsigned max);
     31 
     32 // Encode only unsafe chars, including \ "^&`<>[]{}
     33 // Also encode space as %20, instead of +
     34 int UrlEncodeOnlyUnsafeChars(const char *source, char *dest, unsigned max);
     35 
     36 std::string UrlDecodeString(const std::string & encoded);
     37 std::string UrlDecodeStringWithoutEncodingSpaceAsPlus(
     38     const std::string & encoded);
     39 std::string UrlEncodeString(const std::string & decoded);
     40 std::string UrlEncodeStringWithoutEncodingSpaceAsPlus(
     41     const std::string & decoded);
     42 std::string UrlEncodeStringForOnlyUnsafeChars(const std::string & decoded);
     43 
     44 #endif
     45 
     46 }  // namespace rtc
     47