Strings in java, AFAIK, do not retain their original encoding – they are always stored internally in some Unicode form.
You want to detect the charset of the original stream/bytes – this is why I think your String.toBytes() call is too late.
Ideally if you could get the input stream you are reading from, you can run it through something like this: http://code.google.com/p/juniversalchardet/
There are plenty of other charset detectors out there as well