1.19.2 url.sty

<..configure ooffice url..>
 \:CheckOption{url-il2-pl} \if:Option
 \else \:CheckOption{url-enc} \fi
 \if:Option
    \Configure{string-encoder}{url-encoder}
 %   \:CheckOption{url-il2-pl} \if:Option
       <.il2-pl.tcx url encoder.>
 %   \else
       <.default url encoder WAIT.>
 %      \Log:Note{for il2-pl url encoding,
 %                        use the command line option ’url-il2-pl’}
 %   \fi
    \Configure{url}%
      {<.:temp = url encoded string.>%
       \Link[\noexpand\the\tmp:toks \space
                class="url"]{}{}{\let\UrlBigBreaks\empty
                          \let\UrlBreaks\empty #1}\EndLink}
    <.url encoded string utilities.>
 \else
    \:CheckOption{url-} \if:Option
       \Configure{url}%
         {{\let\UrlBigBreaks\empty \let\UrlBreaks\empty #1}}%
    \else
       \Log:Note{for URL encoding within href
              use the command line option ‘url-enc’; for hyperlink-less
              entry use the command line option ‘url-’}
       \Configure{url}%
         {\tmp:toks{#1}\Link[\noexpand\the\tmp:toks\space
                   class="url"]{}{}{\let\UrlBigBreaks\empty
                             \let\UrlBreaks\empty #1}\EndLink}
    \fi
 \fi
 <.path config.>
-_-_-

<..:temp = url encoded string..>
 \tmp:toks={}\set:spaces#1<.par del.>%
 \edef\:temp{\tmp:toks{\csname url-encoder\expandafter\endcsname
                       \the\tmp:toks <.par del.>}}\:temp
-_-_-

<..url encoded string utilities..>
 \def\set:spaces{\futurelet\:temp\set:spacesoo}
 \def\set:spacesoo{%
    \expandafter\ifx \space\:temp
       \tmp:toks\expandafter{\the\tmp:toks{ }}%
    \fi
    \set:spaceso
 }
 \def\set:spaceso#1#2<.par del.>{%
    \tmp:toks\expandafter{\the\tmp:toks #1}%
    \if :#2:\else \set:spaces#2<.par del.>\fi
 }
-_-_-

<..default url encoder..>
 \Configure{url-encoder}
      {%}{%25}
      {&}{%26}
      {’}{%27}
      {<}{%3C}
      {>}{%3E}
      {_}{_}
      {^}{^}
      {}{}
 \Log:Note{current url encoding setting: \string\Configure{url-encoder}%
      {\%}{\%25}%
      {&}{\%26}%
      {’}{\%27}%
      {<}{\%3C}%
      {>}{\%3E}%
      {\string _}{\string _}%
      {\string ^}{\string ^}%
      {}{}}
-_-_-

<..il2-pl.tcx url encoder..>
 \Configure{url-encoder}
       {%}{%25}
       {&}{%26}
       {’}{%27}
       {<}{%3C}
       {>}{%3E}
       {_}{_}
       {^}{^}
       {}{&#x0105;}
       {}{&#x0107;}
       {}{&#x0119;}
       {}{&#x0142;}
       {}{&#x00F3;}
       {}{&#x0144;}
       {}{&#x015B;}
       {}{&#x017A;}
       {}{&#x017C;}
       {}{&#x0104;}
       {}{&#x0106;}
       {}{&#x0118;}
       {}{&#x0141;}
       {}{&#x00D3;}
       {}{&#x0143;}
       {}{&#x015A;}
       {}{&#x0179;}
       {}{&#x017B;}
       {}{}
-_-_-

http://www.faqs.org/rfcs/rfc2396.html

See issues in:

\documentclass{article}  
  \usepackage{url}  
\begin{document}  
 
\url{a%b c&d}  
 
\url{a%25b+c&amp;d}  
 
\end{document}

 
 \expandafter\ifx\csname Url@OT1encSpecials\endcsname\relax
    <.url.sty.>
 \else
    <.url-2004.sty.>
 \fi

<..url-2004.styNO..>
 
-_-_-

<..url.styNO..>
 \Configure{url}{\Link[#1 class="url"]{}{}{\let\UrlBigBreaks\empty
                    \let\UrlBreaks\empty #1}\EndLink}
-_-_-