anchor.diff:          return encodedValue;
       }
   
  +
  +    /**
  +     * URL encodes the supplied string per RFC 3986, which defines the following as
  +     * unreserved characters that should NOT be encoded:
  +     *
  +     * A-Z, a-z, 0-9, hyphen ( - ), underscore ( _ ), period ( . ), and tilde ( ~ ).
  +     *
  +     * @value string to encode
  +     * @returns URI encoded string
  +     */
  +    private string function urlEncodePath( string value ) {
  +        var encodedValue = encodeForURL(arguments.value);
  +        // Reverse encoding of tilde "~"
  +        encodedValue = replace( encodedValue, encodeForURL("~"), "~", "all" );
  +        // Fix encoding of spaces, ie replace '+' into "%20"
  +        encodedValue = replace( encodedValue, "+", "%20", "all" );
  +        // Asterisk "*" should be encoded
  +        encodedValue = replace( encodedValue, "*", "%2A", "all" );
  +        // Asterisk "*" should be encoded
  +        encodedValue = replace( encodedValue, "%2F", "/", "all" );
  +
  +        return encodedValue;
  +    }
  +
       /**
        * Returns current UTC date and time in the following formats:
        *   - dateStamp - Current UTC date, format: YYYYMMDD
  
positive.code:      * @value string to encode
       * @returns URI encoded string
       */
      private string function urlEncode( string value ) {
          var encodedValue = encodeForURL(arguments.value);
          // Reverse encoding of tilde "~"
          encodedValue = replace( encodedValue, encodeForURL("~"), "~", "all" );
  
negative.code:             path = "/"& path;
          }
  
          return  urlEncodePath( path );
      }
  
  
  