Again, I know this is a very old post, but wanted to provide the answer for anyone browsing around for a solution.
Fonts are readonly, and contain readonly dictionaries. So you have to copy them into your own dictionary to make modifications. That said, changing the encoding is simple if you want to use one of the built-in encoding vectors, such as ISOLatin1.
The code:
/NewFontName
<< %start a new dict
/Encoding ISOLatin1Encoding % change encoding vector
/OldFontName findfont {} forall % copy old font
>> definefont pop
Now when you want to use the reencoded font, just use /NewFontName like you would any other font.
tgreer@choicesolutions.com