The way those characters are displayed depends entirely upon the terminal settings / locale / charset, etc.
in reply to CGI param character strangeness
I don't see what's hosed about it though. Many of those hex values in the query string do not correspond to "normal" ascii printable characters, so you should expect some odd output when printing it to the terminal, or viewing the file to which it was been written. But while those values are still in your variable - after yanking them with param - they should still be fine. This is just a display issue.
If you're writing these to a file, perhaps it might be better to pack() the data, and write() it to the file, and later read() it when it's needed. Or even simply using binmode would suffice. (This keeps print from inserting any extra or different junk - normal text file laziness promotion ;)