Producing URL friendly encoded params?

Hi folks. Looking for a simple, yet face-punchingly evasive bit of
functionality. Basically, I want to encrypt/decrypt an action
parameter, such as:

foo.com/users/encodedvalue/action

I feel I have the hard part done, in the form of a small crypto
library. This lib has a couple methods that Base64 pack the value,
des3 encrypts it, then CGI.escapes the output. The decrypter does all
that in reverse.

This works most of the time, but I encountered an issue where the
output sporadically contains a period, which destroys restful routing.
So I was hoping to find a cleaner encoding of the value, I suppose
similar to the Rails session value, that has zero potential for
dangerous characters. I'm thinking this is a hex conversion back and
forth, but the specifics elude me.

Any advice mucho appreciated. Cheers.