Once again, this is a review of "Encode::Guess", not "Encode" (cpanratings needs work).
Encode::Guess is one scary module... in my first trial with it, I asked it to distinguish between latin-1 and utf-8, and it guessed that the latin-1 file was utf8, even though I'd intentionally put some octets in there that wouldn't be valid as utf8. Peeking at it internally, I see it's using the Encode::is_utf8 function, which the perl porters swear up and down is not at all a reliable way of identifying utf8 data (it's apparently very badly named).
What it's actually trying to do is a little difficult to understand from the documentation, and I suspect you need to know a fair amount about character encodings for it to make sense at all (e.g. there is no way for it to tell the difference between many encodings, and it's your problem to avoid giving it an ambiguous choice in the list of suspects).
I maintain that Perl couldn't spread so much up to Asian countries without Encode. This module was written by the late Nick Ing-Simmons at the outset, but many authors have since contributed to it. I'd offer my condolences on the late Nick Ing-Simmons, and I, as a user, am indebted to Kogai Dan-san representing the authors for their endeavours.
I use this module to convert documents from utf8 to a user defined encoding.
Installation: I could not find it on YAST, so I used 'make' and so on. It is clearly a big module, because it generated a lot of files, but it worked flawlessly.
Usage: simple and straightforward. With 3 lines of code I had all I needed:
my @list = Encode->encodings(':all');
Encode::from_to($string, 'utf8', $selected_encoding);
The @list contains all available encodings which I feed into a selection list. The from_to function does the transformation. I checked it with German, Czech, Cyrillic and Hebrew characters and it all worked fine.