<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.11"/> <title>glibmm: URI Utilities</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> <link href="doxygen-extra.css" rel="stylesheet" type="text/css"/> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">glibmm  <span id="projectnumber">2.60.0</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.11 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li class="current"><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">URI Utilities</div> </div> </div><!--header--> <div class="contents"> <p>Various uri-related functions. <a href="#details">More...</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:ga0c070cac984dc463fd60ccbdb4237e25"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__UriUtils.html#ga0c070cac984dc463fd60ccbdb4237e25">Glib::uri_unescape_string</a> (const <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a>& escaped_string, const <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a>& illegal_characters=<a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a>())</td></tr> <tr class="memdesc:ga0c070cac984dc463fd60ccbdb4237e25"><td class="mdescLeft"> </td><td class="mdescRight">Unescapes a whole escaped string. <a href="group__UriUtils.html#ga0c070cac984dc463fd60ccbdb4237e25">More...</a><br /></td></tr> <tr class="separator:ga0c070cac984dc463fd60ccbdb4237e25"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0cc4270d6796b2166964f08a5cb746b3"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__UriUtils.html#ga0cc4270d6796b2166964f08a5cb746b3">Glib::uri_parse_scheme</a> (const <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a>& uri)</td></tr> <tr class="memdesc:ga0cc4270d6796b2166964f08a5cb746b3"><td class="mdescLeft"> </td><td class="mdescRight">Gets the scheme portion of a URI. <a href="group__UriUtils.html#ga0cc4270d6796b2166964f08a5cb746b3">More...</a><br /></td></tr> <tr class="separator:ga0cc4270d6796b2166964f08a5cb746b3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad902095ab5049111caa9207770b0a437"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__UriUtils.html#gad902095ab5049111caa9207770b0a437">Glib::uri_escape_string</a> (const <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a>& unescaped, const <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a>& reserved_chars_allowed=<a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a>(), bool allow_utf8=true)</td></tr> <tr class="memdesc:gad902095ab5049111caa9207770b0a437"><td class="mdescLeft"> </td><td class="mdescRight">Escapes a string for use in a URI. <a href="group__UriUtils.html#gad902095ab5049111caa9207770b0a437">More...</a><br /></td></tr> <tr class="separator:gad902095ab5049111caa9207770b0a437"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <p>Various uri-related functions. </p> <h2 class="groupheader">Function Documentation</h2> <a class="anchor" id="gad902095ab5049111caa9207770b0a437"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> Glib::uri_escape_string </td> <td>(</td> <td class="paramtype">const <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> & </td> <td class="paramname"><em>unescaped</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> & </td> <td class="paramname"><em>reserved_chars_allowed</em> = <code><a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a>()</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>allow_utf8</em> = <code>true</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Escapes a string for use in a URI. </p> <p>Normally all characters that are not "unreserved" (i.e. ASCII alphanumerical characters plus dash, dot, underscore and tilde) are escaped. But if you specify characters in <em>reserved_chars_allowed</em> they are not escaped. This is useful for the "reserved" characters in the URI specification, since those are allowed unescaped in some portions of a URI.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">unescaped</td><td>The unescaped input string. </td></tr> <tr><td class="paramname">reserved_chars_allowed</td><td>A string of reserved characters that are allowed to be used. </td></tr> <tr><td class="paramname">allow_utf8</td><td>true if the result can include UTF-8 characters. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>An escaped version of <em>unescaped</em>.</dd></dl> <dl class="since_2_16"><dt><b><a class="el" href="since_2_16.html#_since_2_16000047">Since glibmm 2.16:</a></b></dt><dd></dd></dl> </div> </div> <a class="anchor" id="ga0cc4270d6796b2166964f08a5cb746b3"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> Glib::uri_parse_scheme </td> <td>(</td> <td class="paramtype">const <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> & </td> <td class="paramname"><em>uri</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Gets the scheme portion of a URI. </p> <p>RFC 3986 decodes the scheme as: </p><div class="fragment"><div class="line">URI = scheme <span class="stringliteral">":"</span> hier-part [ <span class="stringliteral">"?"</span> query ] [ <span class="stringliteral">"#"</span> fragment ]</div></div><!-- fragment --><p> Common schemes include "file", "http", "svn+ssh", etc.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">uri</td><td></td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The "Scheme" component of the URI, or an empty string on error.</dd></dl> <dl class="since_2_16"><dt><b><a class="el" href="since_2_16.html#_since_2_16000046">Since glibmm 2.16:</a></b></dt><dd></dd></dl> </div> </div> <a class="anchor" id="ga0c070cac984dc463fd60ccbdb4237e25"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> Glib::uri_unescape_string </td> <td>(</td> <td class="paramtype">const <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> & </td> <td class="paramname"><em>escaped_string</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> & </td> <td class="paramname"><em>illegal_characters</em> = <code><a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a>()</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Unescapes a whole escaped string. </p> <p>If any of the characters in <em>illegal_characters</em> or the character zero appears as an escaped character in <em>escaped_string</em> then that is an error and an empty string will be returned. This is useful it you want to avoid, for instance, having a slash being expanded in an escaped path element, which might confuse pathname handling.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">escaped_string</td><td>An escaped string to be unescaped. </td></tr> <tr><td class="paramname">illegal_characters</td><td>An optional string of illegal characters not to be allowed. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>An unescaped version of <em>escaped_string</em>.</dd></dl> <dl class="since_2_16"><dt><b><a class="el" href="since_2_16.html#_since_2_16000045">Since glibmm 2.16:</a></b></dt><dd></dd></dl> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Tue Mar 19 2019 09:56:38 for glibmm by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.11 </small></address> </body> </html>