Note that php5.3 rawurlencode will do exactly the same thing.
For PHP 5.2, easy replacement to this function :
<?php
function rfc3986_encode($str)
{
$str = rawurlencode($str);
$str = str_replace('%E7', '~', $str);
return $str;
}
?>
(PECL OAuth >=0.99.2)
oauth_urlencode — Encode a URI to RFC 3986
uri
URI to encode.
Returns an » RFC 3986 encoded string.