Set the fragment.
This function sets the fragment to the specified string, which may be empty. An empty fragment is distinct from having no fragment. Reserved characters in the string are percent-escaped in the result.
assert( url("?first=john&last=doe" ).set_encoded_fragment( "john doe" ).encoded_fragment() == "john%20doe" );
this->has_fragment() == true && this->fragment() == s
Linear in `this->size() + s.size()`.
Strong guarantee. Calls to allocate may throw.
fragment = *( pchar / "/" / "?" )