If the encoding of the string is already UTF8 (as opposed to ISO-8859-1(5)), you need do nothing:
utf8_encode — Encodes an ISO-8859-1 string to UTF-8
Actually, running utf8_encode
on a string which is already UTF8 is bound to wreak some kind of havoc.
You say that the file encoding is UTF8, but what you get looks like ISO-8859. So I suspect you have something that's messing up with the encoding chain.
Verify the Content-Type
header (i.e. verify that the one you set is, indeed, the one that gets sent), double check the file encoding, and the browser setting as well (it should be either UTF8 or autodetect).
Also, it is quite strange that you should get "SsIg" -- that is definitely not the expected behaviour of UTF8 encoding. It almost seems that something is trying to map your characters back into the ASCII set by mapping them to the most similar ASCII character. I'd therefore also check any proxies or caches or anything in the middle which is in position to manipulate the data sent by your script.